[英]missing expression sql
SELECT
create_date
,resolved_date
,item
,site
,status
,contact_time
,impact_label
FROM
mytable
WHERE
create_date BETWEEN to_date('2013/03/01','YYYY/MM/DD')
AND to_date('2015/08/06','YYYY/MM/DD')
and CASE item
WHEN in ('A','B') then '1'
WHEN in ('C') then '2'
WHEN in ('D') then '3'
ELSE null
END
GROUP BY
create_date
,resolved_date
,item
,site
,status
,contact_time
,impact_label
它說我第一次進屋時遇到問題,有人可以幫忙嗎?
如果要在CASE
使用IN
,則需要不同的語法:
...
case
when item in ('A','B') then '1'
when item in ('C') then '2'
when item in ('D') then '3'
--else null -- no need , ELSE NULL is default behaviour of CASE
end ...
或更改CASE
來更正簡單的搜索語法:
CASE item
WHEN 'A' THEN '1'
WHEN 'B' THEN '1'
WHEN 'C' THEN '2'
WHEN 'D' THEN '3'
ELSE NULL
END
CASE
是一個返回值的表達式。 在您的情況下,它將返回一個字符串值。
WHERE
子句由布爾表達式組成。 字符串不是布爾表達式。 我不確定您打算做什么,也許:
(CASE WHEN item in ('A','B') then '1'
WHEN item in ('C') then '2'
WHEN item in ('D') then '3'
ELSE null
END) IS NOT NULL
(請注意對CASE
的更改以及對IS NOT NULL
。)
但是,這是一個愚蠢的表達,因為它等效於:
item in ('A', 'B', 'C', 'D')
也許您想將CASE
添加到SELECT
,為其提供適當的列別名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.