SQL CASE WHEN IN

问题描述 投票:0回答:1

是否可以在 CASE WHEN 中使用 IN 运算符?

SELECT
CASE WHEN DIGITS(A)||DIGITS(B) IN (SELECT DIGITS(C)||DIGITS(D) FROM TABLE_2)
    THEN x
    ELSE y 
    END AS MY_VAR
FROM TABLE_1

这给了我一个错误:

比较运算符 IN 无效。

sql db2 case
1个回答
0
投票

db2 中的

IN
语句中不允许直接使用
CASE
运算符,但是您可以使用
EXISTS

获得类似的结果
SELECT
  CASE WHEN EXISTS (
           SELECT 1
           FROM TABLE_2
           WHERE DIGITS(A)||DIGITS(B) = DIGITS(C)||DIGITS(D)
         )
       THEN x
       ELSE y 
  END AS MY_VAR
FROM TABLE_1
© www.soinside.com 2019 - 2024. All rights reserved.