我有一张表格
Col1 | Col2
-------------
A | C
B | A
C | X
D | A
E | NULL
如果Col2中存在Col1的任何元素,则应将其打印为 元素,是。
如果在Col2中不存在,则需要将其打印为元素,NO,如果相应的col2值为NULL,则需要将其打印为元素,NULL
所以最终输出应该看起来像
A YES
B NO
C YES
D NO
E NULL
我能够为同一个人编写三个单独的查询,但我正在努力解决如何将它们放入SQL中的Case语句。
SELECT Col1 FROM table WHERE col1 IN (SELECT col2 FROM table)
Select col1 FROM table where Col2 is NULL
SELECT Col1 FROM table WHERE col1 NOT IN (SELECT col2 FROM table)
我尝试将它们放在案例陈述中
Select col1, Case
when (SELECT Col1 FROM table WHERE col1 IN (SELECT col2 FROM table))
then "YES"
when (Select col1 FROM table where Col2 is NULL)
then "NULL"
else
"NO"
但是我收到了一个错误。我该如何解决这个问题?
答案 0 :(得分:1)
我希望查询看起来像这样:
select col1,
(case when col2 is null then NULL
when col1 in (select t2.col2 from t t2)
then 'YES'
else 'NO'
end)
from t;