Как установить переменную и проверить ее на нуль в условиях «случай когда» SQL - PullRequest
0 голосов
/ 29 мая 2020

У меня проблема с этим фрагментом кода.

Мне нужно сделать что-то вроде этого:

DECLARE @UserID INT
...
    CASE   
        WHEN (@UserID = (SELECT TOP 1 UserPk FROM Users WHERE Name= 'JoeDoe')) IS NULL
        THEN 0
        ELSE 1
    END

Мне нужно установить @UserID для некоторых других следующих шагов и в то же время время нужно проверить (SELECT TOP 1 UserPk FROM Users WHERE Name = 'JoeDoe') на ноль.

Спасибо за помощь.

Ответы [ 4 ]

0 голосов
/ 30 мая 2020

Просто используйте ниже:

DECLARE @UserID INT
SET @UserID = ISNULL((SELECT TOP(1) 1 FROM Users WHERE Name= 'JoeDoe'), 0)

Print @UserID
0 голосов
/ 29 мая 2020

Возможно, просто ISNULL?

SET @UserID = ISNULL(SELECT UserPk FROM Users WHERE Name= 'JoeDoe'),0);
0 голосов
/ 29 мая 2020

Я бы предложил использовать EXISTS:

DECLARE @UserID INT;

SET @UserId = (CASE WHEN EXISTS (SELECT 1 FROM Users WHERE Name= 'JoeDoe')
                    THEN 1 ELSE 0
               END);

Я не уверен, почему вы называете этот столбец @UserId. Похоже, это флаг наличия имени.

0 голосов
/ 29 мая 2020

вот так?

IF EXISTS (SELECT UserPk FROM Users WHERE Name= 'JoeDoe')
    SET @UserID = 0;
ELSE
    SET @UserID = 1;
...