这个sql有什么问题如下

时间:2017-11-07 08:31:45

标签: sql oracle

SQL:

SELECT count(TRANSFER_REQUEST_ID) count
FROM XXSTT_TRANSFER_REQUESTS
WHERE (OVERALL_STATUS = 'Approved' AND LAST_UPDATE_DATE < CASE
                                                         WHEN #{date} <= DATE '2017-09-10'
                                                           THEN #{date}
                                                         ELSE DATE '2017-09-10')
                                                              OR (CREATION_DATE > DATE '2017-09-10' AND
                                                                 OVERALL_STATUS = 'Completed' AND
                                                                 LAST_UPDATE_DATE < #{date})
ORDER BY CREATION_DATE DESC;

当我运行此sql时,错误将出现消息

  

ORA-00905:缺少关键字

我的选择条件就是如果LAST_UPDATE_DATE大于'2017-09-10'则使用此日期,否则使用输入日期

1 个答案:

答案 0 :(得分:0)

@MiloBellano in comments确定:

SELECT count(TRANSFER_REQUEST_ID) count
FROM   XXSTT_TRANSFER_REQUESTS
WHERE  (   OVERALL_STATUS = 'Approved'
       AND LAST_UPDATE_DATE < CASE
                              WHEN #{date} <= DATE '2017-09-10'
                              THEN #{date}
                              ELSE DATE '2017-09-10'
                              END                      -- This is missing
       )
OR     (   CREATION_DATE > DATE '2017-09-10'
       AND OVERALL_STATUS = 'Completed'
       AND LAST_UPDATE_DATE < #{date}
       )
ORDER BY CREATION_DATE DESC;
相关问题