有没有快速的方法来检查任何列是否为NULL?

The*_*lla 13 sql t-sql sql-server sql-server-2005

我有一张大约20列的桌子.打字除外:

Where column1 is null OR column2 is null OR column3 is null etc...
Run Code Online (Sandbox Code Playgroud)

有没有更快捷的方法来检查每一列,看看是否有任何值为空,如果是,返回该记录?

Aar*_*and 6

没有.有一些方法可以更快地编码,但没有像你所暗示的快捷方式.取自我在dba.stackexchange上给出的答案:

DECLARE @tb NVARCHAR(255), @sql NVARCHAR(MAX);

SET @tb = N'dbo.[table]';

SET @sql = N'SELECT * FROM ' + @tb + ' WHERE 1 = 0';

SELECT @sql = @sql + N' OR ' + QUOTENAME(name) + ' IS NULL'
    FROM sys.columns 
    WHERE [object_id] = OBJECT_ID(@tb);

EXEC sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)