isnull动态处理所有的动态列 --【叶子】

本文介绍了一个SQL存储过程,用于动态处理表中所有可能变化的列的NULL值问题。通过传入表名和用于替换NULL值的字符,该过程能够灵活地应对列数量和类型的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

isnull动态处理所有的动态列

-- =================================

-- Author:<Maco Wang>

-- CreateDate:2009-04-03 13:15:35

-- Description:<处理一个表的所有为空列,列是动态添加后的不固定列>

-- =================================

create procedure getnotnull

(

@tablename varchar(100), --表名

@Na varchar(20) --替换null的字符

)

as

begin

declare @sql varchar(8000)

set @sql=''

select @sql=@sql+',isnull(cast('+name+' as varchar),'+@Na+') as '+name

from syscolumns where id=object_id(@tablename) order by colid

set @sql=stuff(@sql,1,1,'')

--print @sql

exec('select '+@sql+' from '+@tablename)

end

--测试数据

go

create table testtb(id int ,nn varchar(20))

insert into testtb

select null,null union all

select null,'a' union all

select 2,null

--处理非空列

go

exec getnotnull 'testtb','0'

go

drop table testtb

/*运行结果

id nn

------------------------------ ------------------------------

0 0

0 a

2 0

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值