在SQL Server中将Bool转换为Bit

Ant*_*tov 4 sql-server sql-server-2008 sqldatatypes

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

Aar*_*and 9

DECLARE @bool BIT;

SELECT @bool = CASE WHEN EXISTS (some subquery) THEN 1 ELSE 0 END;
Run Code Online (Sandbox Code Playgroud)

我不知道反之亦然.SQL Server没有布尔数据类型,因此我不知道您要将BIT转换为...可能:

SELECT CASE WHEN @bool = 1 THEN 'True' ELSE 'False' END;
Run Code Online (Sandbox Code Playgroud)

如果您在IF声明中尝试这样做:

IF @bool = 1
BEGIN
  PRINT 'True';
END
ELSE
BEGIN
  PRINT 'False';
END
Run Code Online (Sandbox Code Playgroud)

如果你正在寻找速记,你可以说,IF (@bool)而不是IF (@bool) = 1抱歉,但你运气不好.如果您正在尝试"优化"您的代码并且没有更紧迫的问题,那么回家过一天并喝一杯啤酒,您已经获得了它.保存两个字符已经花费了你比你获得更多的时间.