Подтвердить что ты не робот

Установка двух скалярных переменных в один оператор SELECT?

Я хочу сделать это:

Declare @a int;
Declare @b int;

SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223')

PRINT @a
PRINT @b

Но это недопустимый синтаксис. Как установить несколько скалярных переменных в один оператор select? Я могу сделать:

Declare @a int;
Declare @b int;

SET @a = (SELECT StartNum FROM Users Where UserId = '1223')
SET @b = (SELECT EndNum FROM Users Where UserId = '1223')

PRINT @a
PRINT @b

Но это займет в два раза больше. Каков самый быстрый способ?

4b9b3361

Ответ 1

DECLARE @a int;
DECLARE @b int;

SELECT @a = StartNum, @b = EndNum 
FROM Users 
WHERE UserId = '1223'

Ответ 2

Сделайте это так:

Declare @a int;
Declare @b int;

SELECT @a=StartNum,@b=EndNum FROM Users Where UserId = '1223'

PRINT @a
PRINT @b

Ответ 3

Если вы делаете это в хранимой процедуре и не хотите получить результат выбора в выходном результирующем наборе, вам нужно будет использовать слово INTO.

Declare @a int;
Declare @b int;

SELECT StartNum, EndNum 
FROM Users 
Where UserId = '1223'
INTO @a, @b;

Его также можно использовать следующим образом:

SELECT StartNum, EndNum 
INTO @a, @b
FROM Users 
Where UserId = '1223';