sql - 是否可以直接选择 EXISTS 作为位?

标签 sql sql-server tsql

我想知道是否可以做这样的事情(这不起作用):

selectcast((exists(select * from theTable where theColumn like 'theValue%') as bit)

看起来应该是可行的,但是很多应该在 SQL 中工作的东西却不能;)我已经看到了这个问题的解决方法(SELECT 1 where...Exists...),但似乎我应该这样做能够将存在函数的结果转换为一点并用它来完成。

最佳答案

不,您必须使用解决方法。

如果必须返回条件位 0/1,另一种方法是:

SELECT CAST(
   CASE WHEN EXISTS(SELECT * FROM theTable where theColumn like 'theValue%') THEN 1 
   ELSE 0 
   END 
AS BIT)

或者没有类型转换:

SELECT
   CASE
       WHEN EXISTS( SELECT 1 FROM theTable WHERE theColumn LIKE 'theValue%' )
            THEN 1 
       ELSE 0 
   END

关于sql - 是否可以直接选择 EXISTS 作为位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759756/

相关文章:

sql-server-2008 - T-SQL : How does one handle an error in a print statement?

java - 如何在oracle中查看由启用hibernate的java程序执行的最近sql命令的事务日志(带有时间和性能信息)

java - 使用java对空结果集进行sql错误非法操作

sql - 在 SQL 中汇总数据

sql-server - sql azure 初学者 - 简单的插入语句出现错误

sql-server-2008 - 在 CTE 查询中使用聚合函数

mysql - 查找mysql中每个 `key'列具有第二大日期的每条记录?

基于月份和日期的 SQL Server 生日列表

sql-server - 如何从 InTouch Wonderware 或 SQL Server 2014 调用 SOAP Web 服务

sql - 连接海量 CTE 表(13,000,000 行以上)性能问题