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

sql-server – 如何便宜地确定列是否只包含NULL记录?

发布时间:2020-12-12 07:02:01 所属栏目:MsSql教程 来源:网络整理
导读:我有一个500列和100M行的大表.基于一个小样本,我相信只有大约50个列包含任何值,而另一个450只包含NULL值.我想列出不包含数据的列. 在我当前的硬件上,查询每一列大约需要24小时(从tab中选择count(1),其中col_n不为null) 是否有一种较便宜的方法来确定列是否完
我有一个500列和100M行的大表.基于一个小样本,我相信只有大约50个列包含任何值,而另一个450只包含NULL值.我想列出不包含数据的列.

在我当前的硬件上,查询每一列大约需要24小时(从tab中选择count(1),其中col_n不为null)

是否有一种较便宜的方法来确定列是否完全为空/ NULL?

解决方法

那这个呢:
SELECT
    SUM(CASE WHEN column_1 IS NOT NULL THEN 1 ELSE 0) column_1_count,SUM(CASE WHEN column_2 IS NOT NULL THEN 1 ELSE 0) column_2_count,...
FROM table_name

如果使用INFORMATION_SCHEMA.COLUMNS表,则可以轻松创建此查询.

编辑:

另一个想法:

SELECT MAX(column_1),MAX(column_2),….. FROM table_name

如果结果包含值,则填充列.它应该需要一次表扫描.

(编辑:李大同)

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

    推荐文章
      热点阅读