首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle case缺失关键字

Oracle case缺失关键字
EN

Stack Overflow用户
提问于 2019-10-10 17:55:42
回答 2查看 223关注 0票数 0

当我试图执行下面的查询时,我无法找出缺少的关键字,我想要的是如果startDate和endDate在其他返回sysdate-7数据之间存在使用。

代码语言:javascript
运行
复制
    select * from LARGE_RELATION LR where
     (CASE WHEN (STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL)
           THEN LR.END_DT BETWEEN to_date(STARTDATE, 'yyyymmdd') and to_date(ENDDATE, 'yyyymmdd')
           ELSE (LR.END_DT IS NULL OR LR.END_DT > SYSDATE - 7)
           END);

ORA- 00905 :缺少关键字00905。00000 -“缺少关键字”*原因:

*操作:行错误:3列: 31

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-10 18:01:36

当两个日期都为非空时,第一个条件处理

当其中一个日期为null时,第二个验证

代码语言:javascript
运行
复制
select * 
from LARGE_RELATION LR 
where
    (    STARTDATE IS NOT NULL 
     AND ENDDATE IS NOT NULL
     AND LR.END_DT BETWEEN to_date(STARTDATE, 'yyyymmdd') 
                       AND to_date(ENDDATE, 'yyyymmdd')
    ) OR
    (     (STARTDATE IS NULL OR ENDDATE IS NULL)
      AND (LR.END_DT IS NULL OR LR.END_DT > SYSDATE - 7)
    ) 
票数 1
EN

Stack Overflow用户

发布于 2019-10-10 18:01:42

在示例中,需要在case之后指定要检查的参数- CASE STARTDATE WHEN IS NOT NULL AND (ENDDATE IS NOT NULL)

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

https://stackoverflow.com/questions/58328605

复制
相关文章

相似问题

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