【问题标题】:How to approach the following query in oracle如何在 oracle 中处理以下查询
【发布时间】:2015-06-01 23:06:12
【问题描述】:

如何在 oracle sql 中处理以下查询

select last_trans_date,
last_trans_date<sysdate-180 as "a",
last_trans_date<sysdate-360 as "b"
from x;

【问题讨论】:

  • 问题是什么?
  • 如何选择 col1, col1>sysdate-180 作为 col2

标签: sql oracle plsql oracle-sqldeveloper


【解决方案1】:

我猜你想要这样的东西:

select last_trans_date,
       CASE
         WHEN last_trans_date < sysdate-180 THEN 'YES'
         ELSE 'NO'
       END as "a",
       CASE
         WHEN last_trans_date < sysdate-360 THEN 'YES'
         ELSE 'NO'
       END as "b"
  from x;

Oracle 数据库不支持 BOOLEAN 类型,因此您无法直接返回比较结果。在这里,我任意选择返回“YES”和“NO” - 将其更改为您更喜欢/最好的任何内容。

【讨论】:

  • 感谢 Bob 的回复,但我需要基于列别名“a”等条件的数据,我需要基于条件 ast_trans_date
  • 您需要什么数据?换句话说,如果 LAST_TRANS_DATE
猜你喜欢
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 2021-02-27
  • 2015-02-15
  • 1970-01-01
  • 2021-12-14
相关资源
最近更新 更多