寻找类似的方法
with T(A) as (values (1), (2), (439), (438), (13000023) ),
TT(B) as (values (2), (438))
select
A,
(CASE
WHEN (A IN (select B from tt) ) THEN 0
ELSE A
END) AS CODE
from T
(有关信息,以上操作无效,并且出现错误:[SQL0115]比较器输入错误。SQLState:42601错误代码:-115
欢迎任何建议。谢谢
这应该起作用:
select A,
(CASE WHEN A IN (select B from tt) THEN 0
ELSE A
END) AS CODE
from T
IN
之后的别名不适当。
我认为左联接将在这里为您提供帮助:
with T(A) as (values (1), (2), (439), (438), (13000023) ),
TT(B) as (values (2), (438))
select case
when B is NULL then A
else 0
end
from T
left join TT
on A = B;
请注意,如果键不是唯一的,则可能必须修改它。