为什么查询:
SELECT CAST((column LIKE '%string%') AS INT)+100
返回
关键字“AS”附近的语法不正确
答案 0 :(得分:7)
因为bool不是T-SQL中的类型。它不存在。布尔表达式不是bit类型。他们不拥有类型 - 只有在特殊地方的语法允许时才允许它们。是的,这太糟糕了。
SELECT (case when (column LIKE '%string%') then 1 else 0 end)+100
答案 1 :(得分:1)
CAST
不评估表达式。无论如何,你如何将一个布尔结果置于Int?那永远不会奏效。
@ usr的答案是正确的方法。