SQL-SERVER-2008: как сопоставить пользовательские переменные с несколькими полями в запросе? - PullRequest
2 голосов
/ 26 июля 2011

Мне просто нужно знать, возможно ли это без написания двух запросов для заполнения переменных. Я хочу сопоставить индекс полей в запросе с пользовательскими переменными. Вот что мне нужно сделать:

DECLARE @a varchar(20);
DECLARE @b varchar(20);

SET @a(0)@b(1) = (
SELECT TOP 1
       a
      ,b
FROM
       c)

If @a = 'val1' and @b = 'xval2' Then

Begin
     Select 'test'
End

Очевидно, что выше не будет работать.

1 Ответ

1 голос
/ 26 июля 2011

Попробуйте установить переменные @ в запросе:

SELECT @a=a, @b=b FROM c...

Вот еще один пример:

DECLARE @a varchar(100)
DECLARE @b varchar(100)

SELECT @a=Login, @b=FunctionalGroupID FROM Login
WHERE LoginID=100

SELECT @a
SELECT @b

Это распечатывает логин и группу отделов из таблицы с именем login и присваивает их переменным a и b соответственно.

В вашем случае:

DECLARE @a varchar(20);
DECLARE @b varchar(20);

SELECT TOP 1 @a=a, @b=b FROM c

IF @a = 'val1' AND @b = 'xval2' THEN
  BEGIN
     SELECT 'test'
  END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...