首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00905:缺少关键字

ORA-00905:缺少关键字
EN

Stack Overflow用户
提问于 2012-07-28 01:15:00
回答 1查看 9.6K关注 0票数 3

尝试在Oracle中运行以下查询时出现ORA-00905: missing keyword错误:

代码语言:javascript
复制
select distinct MONTH_ID
from    DSS_MAIN.DIM_TIME a1
where   Case When TO_CHAR(SYSDATE,'MM') < 3
Then TO_CHAR(a1.MONTH_START_DATE,'YYYYMM') Between (TO_CHAR(SYSDATE,'YYYY')-1)||'03' And TO_CHAR(SYSDATE,'YYYYMM')
Else TO_CHAR(a1.MONTH_START_DATE,'YYYYMM') Between TO_CHAR(SYSDATE,'YYYY')||'03' And TO_CHAR(SYSDATE,'YYYYMM')
End;

单个Between子句工作得很好,所以我假设Case语法有问题。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-28 01:24:13

试试这个:

代码语言:javascript
复制
SELECT DISTINCT MONTH_ID
  FROM DSS_MAIN.DIM_TIME A1
 WHERE TO_CHAR(A1.MONTH_START_DATE, 'YYYYMM') 
            BETWEEN CASE
                        WHEN TO_CHAR(SYSDATE, 'MM') < '03' THEN
                            (TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) - 1) || '03'
                        ELSE
                            TO_CHAR(SYSDATE, 'YYYY') || '03'
                    END
                AND  TO_CHAR(SYSDATE, 'YYYYMM')

Case返回一个值以供进一步使用,则它在您使用它的方式中将不再有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11692528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档