多个赋值的多个变量sql server select语句

时间:2013-12-04 23:40:37

标签: sql-server sql-server-2008 sql-server-2008-r2

我可以在SQL Server的select语句中在单个条件下分配多个变量(我对动态sql来说太愚蠢了):

例如,在Visual Basic中或您可能拥有的许多其他语言

如果x = 1那么     Z = 4     Y = 2 如果

结束

我不认为CASE有效,因为我认为你只能分配一个变量。

2 个答案:

答案 0 :(得分:3)

诀窍在于,如果你可以在一行中完成任务,那么你就不需要像其他人所建议的那样使用BEGIN / END块。虽然事情会开始变得难看。这里有一些实现你想要的例子:

-- using set syntax on one line
declare @x int, @y int , @z int
set @x=1
IF @x=1 set @y=2 set @z=4
print 'y:' + cast(@y as varchar) + ' z:' + cast(@z as varchar)
GO

-- using select syntax, a little prettier on one line
declare @x int, @y int , @z int
set @x=1
IF @x=1 SELECT @y=2,@z=4
print  'y:' + cast(@y as varchar) + ' z:' + cast(@z as varchar)
GO
-- using being/end
declare @x int, @y int , @z int
set @x=1
IF @x=1 
BEGIN
    set @y=2
    set @z=4
END
print 'y:' + cast(@y as varchar) + ' z:' + cast(@z as varchar)

答案 1 :(得分:1)

将作业包裹在BEGIN ... END