如何解决如何从字段中具有非null值的文件中记录sql
每条记录有100个字段,只有几个字段具有值,许多字段为NULL。如果我要显示具有非NULL值的字段的记录,该怎么办?
示例:
-
表1具有100个字段,表中的一条记录具有5个具有非NULL值,95个NULL值的字段。我想显示该记录。
-
另一个具有100个字段NULL的记录,我不想显示该记录。
解决方法
您想要记录并非所有列都是null
的地方。您将需要枚举列名称。最简单的解决方案是冗长的where
子句,例如:
select *
from mytable
where col1 is not null or col2 is not null or ... or colN is not null;
另一种方法是横向连接:
select t.*
from mytable
cross apply (
select count(col) cnt
from (values (col1),(col2),... (colN)) as x(col)
) x
where x.cnt > 0
请注意,第二种解决方案要求所有列都具有相同的数据类型-否则,可能需要进行其他强制转换。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。