我遇到以下问题的问题,无法弄清楚我错在哪里。
SELECT * FROM TBLCUSTCHANNELACCT b WHERE
(CASE WHEN NVL('0001, 0015', '-1') = '-1' THEN NVL('0001, 0015', '-1')
ELSE b.productid END
IN
CASE WHEN NVL('0001, 0015', '-1') = '-1' THEN NVL('0001, 0015', '-1')
ELSE
(SELECT a.product_id FROM tblcfgproductdetail a WHERE a.productcode IN ('0001', '0015') )
END);
任何帮助将不胜感激。
答案 0 :(得分:2)
不要使用case
。只需使用基本逻辑:
SELECT b.*
FROM TBLCUSTCHANNELACCT b
WHERE ('0001, 0015' IS NULL) OR
b.productid IN (SELECT a.product_id
FROM tblcfgproductdetail a
WHERE a.productcode IN ('0001', '0015')
);
我非常确定这是您查询的目的。