当前位置: 代码迷 >> Sql Server >> 如果某列数据全部为0则不显示该列,sql如何写
  详细解决方案

如果某列数据全部为0则不显示该列,sql如何写

热度:24   发布时间:2016-04-24 09:53:13.0
如果某列数据全部为0则不显示该列,sql怎么写
RT,表里有26列,其中有6列数据全为0,搜索的时候想只显示不为0的20列,应该怎么写SELECT语
------解决思路----------------------

select * from cte

declare @sql varchar(max)='',@sql1 varchar(max)=''

if (select SUM(col1) from cte)>0
set @sql1=@sql+',col1'
if ( select SUM(col2) from cte )>0
set @sql1=@sql1+',col2'
if ( select SUM(col3) from cte )>0
begin 
set @sql1=@sql1+',col3'
end
set @sql='select '+stuff(@sql1,1,1,'')+ ' from  cte'
exec( @sql)

col1        col2        col3
----------- ----------- -----------
0           2           0
0           0           0
2           0           0
0           0           0

(4 行受影响)

col1        col2
----------- -----------
0           2
0           0
2           0
0           0

(4 行受影响)


对照下。如果不知道列名就需要在SYS.ALL.COLNUM里面读取了。
  相关解决方案