我在SQL Server中进行选择并说我的Select正在拉这样的数据,
ID Col1 Col2 Col3 Col4
1 xx xx xx xx
2 null null null null
3 xx xx null null
我只想要记录中并非所有行都是空的。在上面的记录中,我不希望ID为2的行。
我如何在where子句中执行此操作?
感谢。
答案 0 :(得分:5)
它们都具有相同的数据类型吗?如果是的话
WHERE COALESCE(Col1, Col2, Col3, Col4) IS NOT NULL
答案 1 :(得分:3)
马丁解决方案的替代方案:
Where Col1 Is Not Null
Or Col2 Is Not Null
Or Col3 Is Not Null
Or Col4 Is Not Null
应该注意的是,如果任何列都不可隐式地转换为相同的数据类型(例如所有varchar或所有整数),那么COALESCE将抛出错误。
答案 2 :(得分:0)
Where not ( Col1 Is Null
And Col2 Is Null
And Col3 Is Null
And Col4 Is Null)
这将确保所有列都不为空
答案 3 :(得分:0)
Select Col1, Col2, Col3, Col4
from table
where Col1>''
and Col2>''
and Col3>''
and Col4>''
这样做是为了选择实际上有数据的所有行。但是,如果您需要选择bal字段但不是null,则必须将其更改为> =。此查询还将使我认为的覆盖索引更加合理。