DECLARE @Str VARCHAR(max) = (
SELECT stuff((
SELECT 'and ' + c.NAME + ' is null '
FROM sys.columns c
WHERE object_name(object_id) = 'yourtablename'
ORDER BY c.NAME
FOR XML PATH('')
), 1, 3, '')
)
SET @Str = 'select * from ' + yourtablename + ' where ' + @Str
PRINT @Str
EXEC (@Str)
3条答案
按热度按时间eh57zj3b1#
给定一个具有此架构的表
Employee(id, fname, lname, dob)
如果你想找到Employee
有一排NULL
还是空的fname
然后你会做以下事情。。。当然,你可以扩展它来找到任何
NULL
或空字段/列。k97glaaz2#
除了手动对每一列求和之外,我看不到任何其他方法。下面是一个比较简洁的方法:
我们可以替换
NULL
列值,然后将结果与空字符串进行比较。这意味着我们可以检查两者NULL
只有一个逻辑表达式。dtcbnfnu3#