when”条件下设置变量并检查它是否为空

23c0lvtd  于 2021-08-13  发布在  Java
关注(0)|答案(4)|浏览(364)

我对这段代码有问题。
我需要这样做:

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') 为空。
谢谢你的帮助。

bqjvbblv

bqjvbblv1#

这样地?

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

whhtz7ly2#

也许只是一个 ISNULL ?

SET @UserID = ISNULL(SELECT UserPk FROM Users WHERE Name= 'JoeDoe'),0);
szqfcxe2

szqfcxe23#

我建议使用 EXISTS :

DECLARE @UserID INT;

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

我不知道你为什么叫这个专栏 @UserId . 它似乎是一个旗帜上出现的名字。

xqkwcwgp

xqkwcwgp4#

只需在下面使用:

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

Print @UserID

相关问题