在SQL Server中将布尔型转换为位(bit)

5

我需要将EXISTS函数的结果存储到一个变量中。我了解到SQL Server没有'bool'类型的变量,所以我想将结果存储在一个bit类型的变量中。反过来,如何从'bit'转换为'bool'?我该怎么做呢?


2
可能是重复问题:是否可以直接选择 EXISTS 作为 bit? - Tim Schmelter
1个回答

14
DECLARE @bool BIT;

SELECT @bool = CASE WHEN EXISTS (some subquery) THEN 1 ELSE 0 END;

我不知道"反之亦然"是什么意思。SQL Server没有布尔数据类型,所以我不知道您想将BIT转换为什么...也许是:

SELECT CASE WHEN @bool = 1 THEN 'True' ELSE 'False' END;

如果你想在一个 IF 语句中实现这个:

IF @bool = 1
BEGIN
  PRINT 'True';
END
ELSE
BEGIN
  PRINT 'False';
END

如果你正在寻找一种简写方式,可以使用IF (@bool)代替IF (@bool) = 1,那么很抱歉,你运气不好。如果这是你试图“优化”代码的地方,并且你没有更紧迫的问题,请回家喝杯啤酒,你已经赚到它了。省两个字符已经比你能得到的省下的时间更多了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接