在SQL Server的select语句中,是否可以在单个条件下赋值多个变量(对于动态sql来说,我太愚蠢了):
例如,在Visual Basic或许多其他语言中,您可能具有
如果为x=1,则z=4 y=2 End If
我不认为CASE是可行的,因为我认为你只能赋值给一个变量。
发布于 2013-12-05 12:29:31
诀窍是,如果你可以在一行上完成赋值,那么你就不需要像其他人建议的那样使用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)发布于 2013-12-05 09:10:06
将赋值放在BEGIN中...结束
https://stackoverflow.com/questions/20405838
复制相似问题