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

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

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

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

我需要一套 @UserID 同时需要检查 (SELECT TOP 1 UserPk FROM Users WHERE Name = 'JoeDoe') 为空。
谢谢你的帮助。

bqjvbblv

bqjvbblv1#

这样地?

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

whhtz7ly2#

也许只是一个 ISNULL ?

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

szqfcxe23#

我建议使用 EXISTS :

  1. DECLARE @UserID INT;
  2. SET @UserId = (CASE WHEN EXISTS (SELECT 1 FROM Users WHERE Name= 'JoeDoe')
  3. THEN 1 ELSE 0
  4. END);

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

xqkwcwgp

xqkwcwgp4#

只需在下面使用:

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

相关问题