sql - 有没有一种快速方法来检查任何列是否为 NULL?

标签 sql sql-server sql-server-2005 tsql

我有一个大约有 20 列的表。除了输入:

Where column1 is null OR column2 is null OR column3 is null etc...

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

最佳答案

没有。有多种方法可以更快地进行编码,但没有像您暗示的那样的捷径。取自an answer I gave on 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;

关于sql - 有没有一种快速方法来检查任何列是否为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705369/

相关文章:

用于连接两个表并提取重复条目的 SQL 查询

sql - 如何将具有特定值的行 append 到我的 T-SQL 查询的输出?

sql - Oracle RegExp_Like 用于两个重复数字

sql - 向数据库中插入值时出错

sql - 检查存储过程中参数是否为 null 或为空

sql-server - Sails.js 和 SQL Server 数据库提供程序

java - 通过 JDBC 在 MSSQL 中运行存储过程的正确方法

sql - 如何从列的值中删除双引号?

sql-server-2005 - 将 LINQPad 连接到远程 SQL Server

sql-server-2005 - 仅具有一个值的检查约束 SQL Server 2005