【问题标题】:Date based Query基于日期的查询
【发布时间】:2021-11-14 09:37:26
【问题描述】:

我试图让它作为检查 FISCAL_START 日期范围的测试运行。

SELECT FISCAL_START,DESCRIPTION,
(
CASE FISCAL_START
WHEN  FISCAL_START = '2014-03-31' THEN  DESCRIPTION
WHEN  FISCAL_START = '2014-09-29' THEN  DESCRIPTION
ELSE 'Test Failed'
END ) 
FROM GL_PERIOD

不断收到缺少关键字的错误。

【问题讨论】:

  • 你在使用哪个数据库
  • 抱歉..这是 Oracle 11

标签: sql date oracle11g case


【解决方案1】:

你混淆了case 表达式语法。

你想要的大概是:

SELECT FISCAL_START, DESCRIPTION,
       CASE WHEN FISCAL_START >= DATE'2014-03-31'
             AND FISCAL_START <= DATE'2014-09-29' THEN DESCRIPTION
            ELSE 'Test Failed'
       END 
FROM GL_PERIOD

可以简化为:

SELECT FISCAL_START, DESCRIPTION,
       CASE WHEN FISCAL_START BETWEEN DATE'2014-03-31' AND DATE'2014-09-29' THEN DESCRIPTION
            ELSE 'Test Failed'
       END 
FROM GL_PERIOD

【讨论】:

  • 列说明数据类型?
  • 抱歉,现在可以正常工作了。
  • 我现在想要实现的是像这样使用 FISCAL_START 和 FISCAL_END 的列名称......伪代码是这样的:从 GL_PERIOD 中选择说明,其中 Entry_Date (来自名为 WORK 的视图并且确实与 GL_PERIOD 没有直接联系)在 FISCAL_START 和 FISCAL_END 之间(在 GL_PERIOD 表中)
  • 这里有你原来问题的答案。如果您想获得其他答案,请提出新问题。
猜你喜欢
  • 1970-01-01
  • 2012-02-04
  • 2023-03-29
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
相关资源
最近更新 更多