当前位置: 首页 > 知识库问答 >
问题:

返回选择语句SQL布尔值

喻子航
2023-03-14

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

我尝试了以下代码

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

并且它只返回TRUE如果UserID存在于表中。如果表中不存在UserID,我希望它返回FALSE

共有3个答案

于鸿博
2023-03-14

考虑到通常1=true0=false,您需要做的就是计算行数,并转换为布尔值。

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

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

颜黎昕
2023-03-14

可能是这样的:

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

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

司承业
2023-03-14

如果用户不存在,你所拥有的将根本不返回任何行。以下是你需要的:

SELECT CASE WHEN EXISTS (
    SELECT *
    FROM [User]
    WHERE UserID = 20070022
)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END
 类似资料:
  • 是否可以编写如下JPQL查询: <代码>选择计数(*) 这将根据实体填充条件是否存在返回真/假布尔值? 我想这样使用查询: 我示例中的查询在语法上不正确(解析错误),但是是否有任何正确的方法可以像在JPQL中那样进行检查,从而返回布尔值,或者只有在Java代码中才有可能?

  • 有人能用简单的英语解释一下这句话背后的逻辑吗? 假设mContainsLoadingRow为布尔值,如果< code>mContainsLoadingRow为< code>true, 然后返回< code > getContentDataSize()1 。 如果没有,则返回 这是正确的看待方式吗?

  • 问题内容: 我在C#项目中将SQLServer用于故障排除程序,并且我有一个包含ID,Question,QuestionId,Solution和Rank的表。我希望有一个问题的多个解决方案,并且程序将选择排名最高的解决方案,该解决方案仅由最高的数字来选择,该数字在每次正确时都会递增。为此,我有以下SQL语句: 当我只有一个可用的解决方案时,它可以很好地工作,但是当我有多个解决方案时,它却不能。 问

  • 在PostgreSQL(9.4版,pgAdmin3)中,当对具有布尔列的表执行select时,数据输出显示“t”或“f”。我想在不写CASE语句或进行连接的情况下,将布尔值转换为TRUE或FALSE。 顺便说一句,根据PostgreSQL自己的文档,这种行为不是SQL标准。 关键字TRUE和FALSE是首选(符合SQL的)用法。 PS:只有在pgAdmin中使用SQL编辑器时才会发生这种情况。使用

  • 这是一个布尔方法,是我作业的一小部分。我想根据输入和记录之间是否匹配来返回true或false。我想我遇到了语法问题。 这是该方法的代码,但始终有红线指示我应该在代码中添加return,否则将该方法更改为void。但我已经在if语句中添加了return true。

  • 我有一个布尔语句,使用