当前位置: 代码迷 >> Sql Server >> 关于字段用变量来表示该怎么写SQL语句
  详细解决方案

关于字段用变量来表示该怎么写SQL语句

热度:18   发布时间:2016-04-24 18:17:34.0
关于字段用变量来表示该如何写SQL语句
表名 TB001,结构如下
xm,col1,col2,col3,col4,col5....col50

表有50列,每列是以col加数字来表示的,现在想在查询分析器写一个循环,用update来列新每一列的数据,把每列
的数据中,为NULL值是,赋值为0

update TB001 Set COl1=0 Where COl1 Is Null

上面的语句一次性只能执行一句,可不可以写一个循环,一次性把50列都更新一下?

求教了。。
------解决方案--------------------
用一个字符串循环吧

DECLARE @sqlstr varchar(8000),@js int,@Colinx varchar(2)
select @sqlstr='',@js=1
WHILE @js<=50
begin
  set @Colinx=CAST(@js as varchar(2))
  set @sqlstr=@sqlstr+'col'+@Colinx+'=case when col'+@Colinx+' is null then 0 Else col'+@Colinx+' End,'
  set @js=@js+1
end
set @sqlstr=' update TB001 set '+LEFT(@sqlstr,LEN(@sqlstr)-1)
Exec (@sqlstr)


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

declare @i int
set @i=1
declare @sql varchar(1000)
while @i<=50
begin
set @sql='update TB001 Set COl'+cast(@i as varchar)+'=0 Where COl'+cast(@i as varchar)+' Is Null'
exec(@sql)
set @i=@i+1
end



  相关解决方案