在 SQL Server 中将 Bool 转换为 Bit

Posted

技术标签:

【中文标题】在 SQL Server 中将 Bool 转换为 Bit【英文标题】:Convert Bool to Bit in SQL Server 【发布时间】:2012-08-30 17:12:39 【问题描述】:

我需要将 EXISTS 函数的结果写入变量。我读到 SQL Server 没有“布尔”变量,所以我想将结果存储在 bit 变量中。反之亦然,从“位”转换为“布尔”。我怎样才能实现它?

【问题讨论】:

is it possible to select EXISTS directly as a bit? 的可能重复项 【参考方案1】:
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,对不起,但你不走运。如果这是你试图“优化”你的代码的地方,并且你没有更紧迫的问题,那么回家喝杯啤酒,你就赢了。保存两个角色所花费的时间已经超过了获得的时间。

【讨论】:

以上是关于在 SQL Server 中将 Bool 转换为 Bit的主要内容,如果未能解决你的问题,请参考以下文章

在sql server中将数据和时间转换为数字

如何在sql server中将列转换为行

如何在 SQL Server 中将行动态转换为列

如何在 SQL Server 中将字符串转换为日期时间?

在 SQL Server 中将字符串转换为日期

在 SQL Server 中将 varchar 转换为 datetime [重复]