SQL WHERE / CASE 问题
SQL questions of WHERE / CASE
我对 sql 声明有疑问。
它有select离子框来选择参数值,包括'A'、'B'和Empty。他们将传递给 :ABC value
当select 'A',数据会显示结果相关'A',B会select B和空会select两者如何处理A 和 B.
我不知道如何处理 select“空”,sql 将 select A 和 B。
非常感谢你帮助我。
Select * From table WHERE table.abc IN
(CASE WHEN :ABC = 'A' THEN 'A'
WHEN :ABC = 'B' THEN 'B'
WHEN :ABC IS NULL THEN ('A','B')
END);```
使用IN SELECT...
代替IN (..)
可以解决这个问题:
Select *
From table
WHERE table.abc IN
(SELECT 'A' WHERE :ABC='A' or :ABC IS NULL
union
SELECT 'B' WHERE :ABC='B' or :ABC IS NULL
)
我对 sql 声明有疑问。 它有select离子框来选择参数值,包括'A'、'B'和Empty。他们将传递给 :ABC value
当select 'A',数据会显示结果相关'A',B会select B和空会select两者如何处理A 和 B.
我不知道如何处理 select“空”,sql 将 select A 和 B。 非常感谢你帮助我。
Select * From table WHERE table.abc IN
(CASE WHEN :ABC = 'A' THEN 'A'
WHEN :ABC = 'B' THEN 'B'
WHEN :ABC IS NULL THEN ('A','B')
END);```
使用IN SELECT...
代替IN (..)
可以解决这个问题:
Select *
From table
WHERE table.abc IN
(SELECT 'A' WHERE :ABC='A' or :ABC IS NULL
union
SELECT 'B' WHERE :ABC='B' or :ABC IS NULL
)