-2

我有一个看起来像这样的表:

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 且等于参数的值

谢谢

4

2 回答 2

3

您的问题,特别是“我需要为 NULL 且等于参数的值”这一位,没有任何意义。where 子句:

Col1 = <parameter> AND Col1 IS NULL

永远不会是真的,因为一列要么是 NULL要么是什么。不能同时是两者。

如果你的意思是你想要等于参数OR NULL 的值,你应该使用:

Col1 = <parameter> OR Col1 IS NULL
于 2012-06-13T08:22:19.570 回答
1

在您的陈述中替换为ANDORWHERE

WHERE (Col1=<parameter> OR Col1 IS NULL)
ANd   (Col2=<parameter> OR Col2 IS NULL)
于 2012-06-13T08:22:07.907 回答