SQL Server - 将逻辑表达式的结果转换为BIT/INT

5
下面的查询为什么不起作用?逻辑表达式不返回布尔/位值吗?
SELECT @v1 = CAST( (@v2 > 0) AS INT)

10
不,T-SQL没有布尔值,只有布尔表达式。是的,这是一个愚蠢的限制。可以使用SELECT @v1 = CAST(CASE WHEN @v2 > 0 THEN 1 ELSE 0 END AS BIT)代替(假设转换甚至是必要的;如果@v1已声明为BIT,则隐式转换会自动处理它)。 - Jeroen Mostert
我只是部分地认为这是如何在SQL中设置布尔值的重复,所以我不会将其关闭为重复。 - Zohar Peled
1个回答

6
以下语句将实现您想要实现的目标。
SELECT @V1 = IIF ( @V2 > 0, 1, 0 ) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接