SELECT *
FROM orders do
WHERE (CASE TO_CHAR(sysdate,'D')
WHEN '1' THEN do.create_date=sysdate
WHEN '2' THEN do.create_date BETWEEN sysdate-1 AND sysdate
WHEN '3' THEN do.create_date BETWEEN sysdate-2 AND sysdate
WHEN '4' THEN do.create_date BETWEEN sysdate-3 AND sysdate
WHEN '5' THEN do.create_date BETWEEN sysdate-4 AND sysdate
WHEN '6' THEN do.create_date BETWEEN sysdate-5 AND sysdate
WHEN '7' THEN do.create_date BETWEEN sysdate-6 AND sysdate
END)
這有什麼問題?我收到以下錯誤消息帶條件語法的where子句中的日期類型
Error Msg :
ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
Error at Line: 46 Column: 37
歡迎堆棧溢出。請儘快閱讀[關於]頁面。請注意,您的錯誤消息提到第46行,但您的SQL不會延伸到第46行。發生這種情況時,您應該確定哪一行是第46行。另外,一般來說,當您詢問SQL問題時,值得指定哪些DBMS你正在使用 - 不同的DBMS之間有很多不同(即使這個問題是關於基本的SQL)。最後(這不是你陷入的陷阱),請記住給你的表名 - 令人驚訝的問題是'我有這個(_anonymous_)'表具有以下模式'。 –