如果没有,是否有另一种方法可以使用CASE或IF/THEN标识符切换SELECT语句而不将语句首先放入标量变量?
有没有办法在不使用IS并使用=符号来设置它的情况下进行格式化?
SELECT ID FROM TABLE WHERE ID = Null
Run Code Online (Sandbox Code Playgroud)
不,NULL不是值.将NULL视为条件,使用IS NULL或IS NOT NULL正在测试此条件.
在此示例中,您可以测试实际值,或者缺少条件所代表的值
WHERE
(X IS NULL OR X = @X)
Run Code Online (Sandbox Code Playgroud)
要么
WHERE
(@X IS NULL OR X = @X)
Run Code Online (Sandbox Code Playgroud)
或者首先测试你的确定条件:
WHERE
CASE X
WHEN 1 THEN
WHEN 2 THEN
ELSE -- includes NULL
END = ...
Run Code Online (Sandbox Code Playgroud)
你的问题是抽象的,很难给出更准确的答案.
例如,你有NOT IN和NULL的问题吗?如果是这样,请使用NOT EXISTS.