返回SQLselect语句的布尔值

如何返回SQL Select语句上的布尔值?

我试过这个代码:

SELECT CAST(1 AS BIT) AS Expr1 FROM [User] WHERE (UserID = 20070022) 

如果表中存在UserID ,则只返回TRUE值。 我希望它返回FALSE值,如果UserID不存在于表上。 非常感谢你。

如果用户不存在,那么在那里你将会返回任何行。 这是你需要的:

 SELECT CASE WHEN EXISTS ( SELECT * FROM [User] WHERE UserID = 20070022 ) THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END 

可能有以下几点:

 SELECT CAST(CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS BIT) FROM dummy WHERE id = 1; 

http://sqlfiddle.com/#!3/5e555/1

假设通常1 = true0 = false ,您只需计算行数,然后转换为boolean

因此,您发布的代码只需要添加一个COUNT()函数:

 SELECT CAST(COUNT(1) AS BIT) AS Expr1 FROM [User] WHERE (UserID = 20070022) 
 select CAST(COUNT(*) AS BIT) FROM [User] WHERE (UserID = 20070022) 

如果count(*)= 0返回false。 如果count(*)> 0返回true。