【SQL Server 学习系列】-- SQL查询数据库表字段值不为空或Null的所有列

 
  
 1 declare @TableName nvarchar(200)
 2 set @TableName = 'Agency'   -- 表名
 3 
 4 declare @querySql nvarchar(max) 
 5 set @querySql = 'select '
 6 
 7 declare @col varchar(50)   
 8 declare My_Cursor cursor
 9 for(select name from syscolumns where  id = (select max(id) from sysobjects where xtype = 'u' and name = '' + @TableName + '' ) ) 
10 open My_Cursor;
11 fetch next from My_Cursor into @col; 
12 while @@FETCH_STATUS = 0  
13     begin  
14         declare @sql varchar(2000)
15         declare @TempTable TABLE(NAME NVARCHAR(2000))
16         delete from @TempTable
17         set @sql='SELECT '+ @col +' FROM '+@TableName+''
18 
19         insert @TempTable 
20         exec(@sql)
21         
22         -- if not exists (select NAME from @TempTable where len(NAME)>0 group by NAME)    --查询字段值全为空或NULL的列
23         if exists (select count(1) from @TempTable where isnull(NAME, '')<> '') -- 查询字段值不全为空或NULL的列
24             begin
25                 set @querySql = @querySql + @col + ', '
26             end 
27        
28         fetch next from My_Cursor into @col; 
29     end  
30 close My_Cursor; --关闭游标  
31 deallocate My_Cursor; --释放游标   
32 
33 if @querySql <> 'select '
34     begin
35         set @querySql = left(@querySql, len(@querySql) - 1)
36         set @querySql = @querySql + ' from ' + @TableName + ''
37         print (@querySql)
38 
39         exec(@querySql)
40     end 
 
  

 

 

 

转载于:https://www.cnblogs.com/elliot-lei/p/5972961.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值