2013-12-04 2 views
1

Могу ли я назначить несколько переменных под одним условием в операторе отбора в SQL Server (я слишком глуп для динамического SQL):Multiple Назначение более одной переменной сервера SQL SELECT заявление

Например, в Visual Basic или многие другие языки, которые вы могли бы иметь

Если х = 1, то г = 4 у = 2 Конец если

Я не думаю, что СЛУЧАЙ работает, потому что я думаю, что вы можете назначить только одной переменной.

+2

Используйте КТР ....... – Phil

ответ

1

Оберните присвоения в BEGIN ... END

3

Хитрость заключается в том, что если вы можете уйти с заданиями на одной линии, то вам не нужно НАЧАТЬ/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) 
+0

Just [пожалуйста, не бросайте, как VARCHAR без длины] (http://sqlblog.com/blogs/aaron_bertrand /archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx). –

Смежные вопросы