如何选择出一条记录有多少个数据(这条记录的非空数据的列数)?

sky592 2003-11-26 11:25:49
如何选择出一条记录有多少个数据(这条记录的非空数据的列数)?
...全文
36 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-11-26
  • 打赏
  • 举报
回复
select case when 列1 is null then 0 else 1 end+case when 列2 is null then 0 else 1 end+...... as 非空数据个数 from 表
Rotaxe 2003-11-26
  • 打赏
  • 举报
回复
select (case(列1 is null)then 0 else 1 end + case(列2 is null)then 0 else 1 end +...... ) 数据个数 from 表
Benimarunikado 2003-11-26
  • 打赏
  • 举报
回复
首先,建立存储过程:


CREATE procedure GetField @tablename char(30), @alias varchar(10) = ''
as
declare @list varchar(500), @list1 varchar(500) -- 长度不够时用list1
select @list = ''
select @list1=''
declare @id int
declare @fieldname varchar(30)
select @id = id from sysobjects where name = @tablename
declare mycur cursor for select name from syscolumns where id = @id
open mycur
fetch next from mycur into @fieldname
WHILE (@@FETCH_STATUS = 0 )
BEGIN
if @alias <> ''
begin
select @fieldname = @alias + '.' + @fieldname
end
if (len(@list1)>0) or (len(@list)+len(@fieldname)>252)
begin
select @list1 = @list1 + @fieldname
select @list1 = @list1 + ','
end
else
begin
select @list = @list + @fieldname
select @list = @list + ','
end
fetch next from mycur into @fieldname
END
close mycur
deallocate mycur
if len(@list1)>0
select @list1 = substring(@list1, 1, len(@list1)-1)
else
select @list = substring(@list, 1, len(@list)-1)
select @list, @list1


如何就可以用存储过程来调用字段了——
语法:
getfield yourtablename
benxie 2003-11-26
  • 打赏
  • 举报
回复
up
qingfengsishi 2003-11-26
  • 打赏
  • 举报
回复
系统存储过程sp_help 中可以读取该表一共有几个字段,我都没写过这样的语句,学习ing~
呵呵,:)

34,874

社区成员

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

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