求列数

dodolzc10 2012-10-27 10:37:04
有这样的表

现在想查出没有数据为null的列数,结果应是4
Mtd201203因为有数据为空值,所以不算
...全文
123 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChangeMyself2012 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

declare @sql varchar(8000)

select @sql=isnull(@sql+'+','')+'(case when exists(select 1 from tb where '+name+' is null) then 0 else 1 end)'
from sys.syscolumns
where id =OBJECT_ID('RPT_resultA4……
[/Quote]

学习了!
dodolzc10 2012-10-27
  • 打赏
  • 举报
回复
OK了!今早就处理了两个数!唉...财务报表的东东真的复杂!
dodolzc10 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
作为被除数,那就再把除法公式也拼接进去
[/Quote]
试试看
發糞塗牆 2012-10-27
  • 打赏
  • 举报
回复
作为被除数,那就再把除法公式也拼接进去
dodolzc10 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
declare @sql varchar(8000)

select @sql=isnull(@sql+'+','')+'(case when exists(select 1 from tb where '+name+' is null) then 0 else 1 end)'
from sys.syscolumns
where id =OBJECT_ID('RPT_resultA41……
[/Quote]
这个数要作为被除数的,这样子行吗
發糞塗牆 2012-10-27
  • 打赏
  • 举报
回复
树锅出现的地方我都没有必要出现了
dodolzc10 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
declare @sql varchar(8000)

select @sql=isnull(@sql+'+','')+'(case when exists(select 1 from tb where '+name+' is null) then 0 else 1 end)'
from sys.syscolumns
where id =OBJECT_ID('RPT_resultA41……
[/Quote]
Josy,可以了!谢谢啦!
百年树人 2012-10-27
  • 打赏
  • 举报
回复
declare @sql varchar(8000)

select @sql=isnull(@sql+'+','')+'(case when exists(select 1 from tb where '+name+' is null) then 0 else 1 end)'
from sys.syscolumns
where id =OBJECT_ID('RPT_resultA41') and name like 'Mtd201%'

exec ('select '+@sql)
dodolzc10 2012-10-27
  • 打赏
  • 举报
回复

select count(name) from sys.syscolumns
where id =OBJECT_ID('RPT_resultA41') and name like 'Mtd201%' .../*只能写到这里,
还有一个条件不会写了
dodolzc10 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
我觉得图是不是没截全?你这个图会让人误解,你表达的是行哦。
[/Quote]
哦,对没有打开图片就复制地址了
發糞塗牆 2012-10-27
  • 打赏
  • 举报
回复
我觉得图是不是没截全?你这个图会让人误解,你表达的是行哦。
發糞塗牆 2012-10-27
  • 打赏
  • 举报
回复
把sys.syscolumns这个目录视图的name列作为where条件的判断一句。
qq576420473 2012-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
declare @sql varchar(8000)

select @sql=isnull(@sql+'+','')+'(case when exists(select 1 from tb where '+name+' is null) then 0 else 1 end)'
from sys.syscolumns
where id =OBJECT_ID('RPT_resultA41……
[/Quote]

想问一下 '+name+' 这样写是什么意思呢

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧