【发布时间】:2013-02-09 23:32:52
【问题描述】:
为什么要查询:
SELECT CAST((column LIKE '%string%') AS INT)+100
返回
关键字“AS”附近的语法不正确
【问题讨论】:
-
你想达到什么目的?您可以在
WHERE子句中使用该表达式,但不能在CAST中使用。
标签: sql-server integer boolean type-conversion
为什么要查询:
SELECT CAST((column LIKE '%string%') AS INT)+100
返回
关键字“AS”附近的语法不正确
【问题讨论】:
WHERE 子句中使用该表达式,但不能在 CAST 中使用。
标签: sql-server integer boolean type-conversion
因为 bool 不是 T-SQL 中的类型。它不存在。布尔表达式不是位类型。它们没有 类型——只有在特殊地方的语法允许时才允许使用它们。是的,这太糟糕了。
SELECT (case when (column LIKE '%string%') then 1 else 0 end)+100
【讨论】:
CAST 不计算表达式。无论如何,您如何将布尔结果转换为 Int?那永远行不通。
@usr 的答案是正确的方法。
【讨论】: