加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 测试是否有任何列为NULL

发布时间:2020-12-12 16:57:24 所属栏目:MsSql教程 来源:网络整理
导读:我试图找出一个简单的查询,我可以测试一个大表是否有一个条目列表,在任何列中至少有一个空白(NULL /空)值. 我需要类似的东西 SELECT * FROM table AS t WHERE ANY(t.* IS NULL) 我不想这样做 SELECT * FROM table AS t WHERE t.c1 = NULL OR t.c2 = NULL OR t
我试图找出一个简单的查询,我可以测试一个大表是否有一个条目列表,在任何列中至少有一个空白(NULL /空)值.

我需要类似的东西

SELECT * FROM table AS t WHERE ANY(t.* IS NULL)

我不想这样做

SELECT * FROM table AS t WHERE t.c1 = NULL OR t.c2 = NULL OR t.c3 = NULL

这将是一个巨大的查询.

解决方法

使用less(read:zero)hand-wrangling扩展@ db2的答案:
DECLARE @tb NVARCHAR(255) = N'dbo.[table]';

DECLARE @sql NVARCHAR(MAX) = N'SELECT * FROM ' + @tb
    + ' WHERE 1 = 0';

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

EXEC sp_executesql @sql;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读