小白求教!!

tandy 2012-10-22 08:53:56
SQL 里面我想通过@i的变化分别对四组字段赋值,每组有4个字段,请问该怎么写呢?以下的写法提示语法错误!

declare
@i int,
@field1 varchar(100),
@field2 varchar(100),
@field3 varchar(100),
@field4 varchar(100)

set @i=1
while @i<5
begin

set @field1,@field2,@field3,@field4=(case @i
when 1 then fristsl,fristjj,fristsup,fristbuyer
when 2 then secondsl,secondjj,secondsup,secondbuyer
when 3 then thirdsl,thirdjj,thirdsup,thirdbuyer
when 4 then fourthsl,fourthjj,fourthsup,fourthbuyer end)

set @i=@i+1
end

...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2012-10-22
  • 打赏
  • 举报
回复
用if/else来单独赋值吧,case when刚才我试了,不行
快溜 2012-10-22
  • 打赏
  • 举报
回复
set @field1= case @i when 1 then fristsl when 2 then secondsl when 3 then thirdsl end
set @field2= case @i when 1 then fristjj when 2 then secondjj when 3 then thirdjj end
...

貌似不能批量赋值,一个一个赋吧
tandy 2012-10-22
  • 打赏
  • 举报
回复
怎么提示有错误啊
select case @i
when 1 then @field1=fristsl,@field2=fristjj,@field3=fristsup,@field4=fristbuyer
when 2 then @field1=secondsl,@field2=secondjj,@field3=secondsup,@field4=secondbuyer
when 3 then @field1=thirdsl,@field2=thirdjj,@field3=thirdsup,@field4=thirdbuyer
when 4 then @field1=fourthsl,@field2=fourthjj,@field3=fourthsup,@field4=fourthbuyer end

消息 102,级别 15,状态 1,第 27 行
'=' 附近有语法错误。
快溜 2012-10-22
  • 打赏
  • 举报
回复
select case @i when 1 then @field1=fristsl,@field2=fristjj,@field3=fristsup,@field4=fristbuyer
when 2 ......
... end

34,576

社区成员

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

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