我需要将 EXISTS 函数的结果写入变量。我读到SQL Server没有'bool'变量,所以我想将结果存储在位变量中。反之亦然,从'bit'转换为'bool'。我怎样才能实现它?
答案 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
,抱歉,但你运气不好。如果您正在尝试“优化”您的代码并且没有更紧迫的问题,那么回家过一天并喝一杯啤酒,您已经获得了它。保存两个字符已经花费了你比你获得的更多的时间。