如何在SQL Select语句中返回布尔值?
我试过这段代码:
SELECT CAST(1 AS BIT) AS Expr1
FROM [User]
WHERE (UserID = 20070022)
并且仅当表上存在该UserID
时,它才返回TRUE
。如果表中不存在UserID
,我希望它返回FALSE
。
发布于 2012-04-30 10:17:07
如果用户不存在,那么您所拥有的内容将不会返回任何行。这是你需要的:
SELECT CASE WHEN EXISTS (
SELECT *
FROM [User]
WHERE UserID = 20070022
)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END
发布于 2012-04-30 10:20:59
可能会有这样的东西:
SELECT CAST(CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS BIT)
FROM dummy WHERE id = 1;
发布于 2013-08-16 06:28:46
考虑到通常的1 = true
和0 = false
,您所需要做的就是计算行数,并转换为boolean
。
因此,您发布的代码只需要添加一个COUNT()
函数:
SELECT CAST(COUNT(1) AS BIT) AS Expr1
FROM [User]
WHERE (UserID = 20070022)
https://stackoverflow.com/questions/10377781
复制相似问题