日期:2014-05-17  浏览次数:20528 次

做数据转换,怎么排除掉全为NULL的字段
现在要将数据库旧的数据进行整理,不过旧的数据表几百个字段(用友的你懂的),一大堆根本就没有用的,全是NULL的,怎么将那些全是NULL的字段排除,只列出不全是NULL(只要其中1个有数据都要)。

------解决方案--------------------

--t1换成你的表名

 declare @sql nvarchar(max)=N'declare @s nvarchar(max)='''';';
 select @sql=@sql+ 'if exists(select * from t1 where '+name+' is not null) set @s=@s+'''+name+',''' 
 from sys.columns where object_id=object_id('t1')
 select @sql=@sql+'set @s=substring(@s,1,len(@s)-1);';
 select @sql=@sql+'set @s=''select '' +@s +'' from t1'' ;';
 select @sql=@sql+'exec(@s)';
   
 exec (@sql)