为什么这个查询语句:
SELECT CAST((column LIKE '%string%') AS INT)+100
返回
关键字“AS”附近的语法不正确
SELECT CAST((column LIKE '%string%') AS INT)+100
返回
关键字“AS”附近的语法不正确
因为在 T-SQL 中,bool 不是一种类型。它不存在。布尔表达式不属于 bit 类型。它们没有一个类型 - 只有在语法中的特殊位置允许时才允许使用。是的,这很糟糕。
SELECT (case when (column LIKE '%string%') then 1 else 0 end)+100
CAST
不会评估表达式。而且,你怎么可能将布尔结果转换为整数?这永远不可能起作用。@usr的答案是正确的方法。
WHERE
子句中使用该表达式,但不能在CAST
中使用。 - Tim Schmelter