如何在 SQL Server 中选择至少具有一个非零值的行

问题描述 投票:0回答:1

我有一个包含 20 多列的表,有些行的所有列都只有 0。有没有办法过滤掉所有列都是0的行?

我可以用

select * from table where CONCAT(col1,col2,col3)!= '000'
但是我不想在我的例子中写20多个零,并且列数将来可能会增加。

我也可以用

select * from table where COALESCE(col1,col2,col3)>0 or COALESCE(col1,col2,col3)<0 

因为某些值可能是负数。但我不想写20+列名。

有没有动态的方法来解决这个问题?

sql sql-server
1个回答
0
投票

您可以使用 INFORMATION_SCHEMA 动态抓取表中的列。

SELECT COLUMN_NAME from INFORMATION_SCHEMA.columns where TABLE_SCHEMA = "your_database" AND TABLE_NAME = "your_table"
© www.soinside.com 2019 - 2024. All rights reserved.