在SQL Server中将Bool转换为Bit

时间:2012-09-05 22:26:17

标签: sql-server-2008 sqldatatypes

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

1 个答案:

答案 0 :(得分:8)

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,抱歉,但你运气不好。如果您正在尝试“优化”您的代码并且没有更紧迫的问题,那么回家过一天并喝一杯啤酒,您已经获得了它。保存两个字符已经花费了你比你获得的更多的时间。