Sna*_*ken 17 sql sql-server null sql-server-2005 correlated-subquery
我正在尝试创建一个查询,该查询将返回除1列之外的所有具有空值的行.某些行在某处会有多个空条目.我想要排除一列,因为此时所有条目都为空,并且它是唯一允许具有空值的列.我被困了,因为我不知道如何在WHERE中包含所有列.
SELECT *
FROM Analytics
WHERE * IS NULL
Run Code Online (Sandbox Code Playgroud)
或者,我可以对一列进行计数,但该表有大约67列.
SELECT COUNT(*)
FROM Analytics
WHERE P_Id IS NULL
Run Code Online (Sandbox Code Playgroud)
Mar*_*ith 12
在SQL Server中,您可以从这个答案借用这个想法
;WITH XMLNAMESPACES('http://www.w3.org/2001/XMLSchema-instance' as ns)
SELECT *
FROM Analytics
WHERE (SELECT Analytics.*
FOR xml path('row'), elements xsinil, type
).value('count(//*[local-name() != "colToIgnore"]/@ns:nil)', 'int') > 0
Run Code Online (Sandbox Code Playgroud)
可能使用67列构建查询会更有效,但它可以节省一些输入或需要动态SQL来生成它.
| 归档时间: |
|
| 查看次数: |
61260 次 |
| 最近记录: |