Выберите заявление с помощью в ISNULL - PullRequest
3 голосов
/ 30 сентября 2010

Я пишу хранимую процедуру, и в этой процедуре я использую isNULL.Если значение равно нулю, я хочу использовать оператор выбора в качестве значения замены, возможно ли это?

IF ISNULL(@v_FilePrefix, (SELECT @v_FilePrefix = TransactionTypePrefix 
                            FROM [ConfigTransactionType] 
                           WHERE TransactionTypeID = @TransactionTypeID));

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Предполагая, что @TransactionTypeID всегда будет возвращать значение:

SELECT @v_FilePrefix = COALESCE(@v_FilePrefix, TransactionTypePrefix)
  FROM [ConfigTransactionType] 
 WHERE TransactionTypeID = @TransactionTypeID

COALESCE вернет первое ненулевое значение. Если @v_FilePrefix не равно нулю, он просто установит для себя значение.

Но было бы лучше использовать:

IF @v_FilePrefix IS NULL
BEGIN

   SELECT @v_FilePrefix = TransactionTypePrefix
     FROM [ConfigTransactionType]
    WHERE TransactionTypeID = @TransactionTypeID

END
1 голос
/ 30 сентября 2010

Вы можете использовать это:

IF @v_FilePrefix IS NULL
BEGIN

    SELECT @v_FilePrefix = TransactionTypePrefix
    FROM [ConfigTransactionType]
    WHERE TransactionTypeID = @TransactionTypeID

END

Я думаю, это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...