我有一个看起来像这样的表:
ID (pk,int)
Col1 (nvarchar)
Col2 (nvarchar)
Col3 (nvarchar)
在所有列(ID除外)中,某些值为NULL。
我想创建一个如下所示的查询:
SELECT * FROM Table
WHERE (Col1=<parameter> AND Col1 IS NULL)
+ (Col2=<parameter> AND Col2 IS NULL)
etc.
我需要NULL值并且等于参数
由于
答案 0 :(得分:3)
您的问题,特别是“我需要的值为NULL且等于参数”这一点毫无意义。 where子句:
Col1 = <parameter> AND Col1 IS NULL
永远不会为真,因为列是NULL 或的东西。它不可能同时存在。
如果您的意思是希望值等于参数 OR NULL,则应使用:
Col1 = <parameter> OR Col1 IS NULL
答案 1 :(得分:1)
将AND
替换为OR
语句中的WHERE
。
WHERE (Col1=<parameter> OR Col1 IS NULL)
ANd (Col2=<parameter> OR Col2 IS NULL)