我需要将EXISTS函数的结果写入变量。我读到 SQL Server 没有“布尔”变量,所以我想将结果存储在一个位变量中。反之亦然,从“位”转换为“布尔”。我怎样才能实现它?
问问题
17564 次
1 回答
12
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
,对不起,但你不走运。如果这是你试图“优化”你的代码并且你没有更紧迫的问题,那么回家喝杯啤酒,你已经赢得了它。保存两个角色所花费的时间已经超过了获得的时间。
于 2012-09-05T22:28:58.943 回答