SQL Server:将bool转换为整数

时间:2013-02-24 20:54:56

标签: sql-server integer boolean type-conversion

为什么查询:

SELECT CAST((column LIKE '%string%') AS INT)+100

返回

  

关键字“AS”附近的语法不正确

2 个答案:

答案 0 :(得分:7)

因为bool不是T-SQL中的类型。它不存在。布尔表达式不是bit类型。他们不拥有类型 - 只有在特殊地方的语法允许时才允许它们。是的,这太糟糕了。

SELECT (case when (column LIKE '%string%') then 1 else 0 end)+100

答案 1 :(得分:1)

CAST不评估表达式。无论如何,你如何将一个布尔结果置于Int?那永远不会奏效。 @ usr的答案是正确的方法。