以下查询(精简)有一个字符串需要转换为整数,但并非该字段中的所有条目都有值。int 的 cast/case 在语句的 select 部分中可以正常工作,但是在 where 语句中它会失败。我正在帮助一位同事,并一直保持空白,为什么这不起作用。有什么想法吗?
SELECT cast((case when item = ' ' then 0 else item end) as int) as newNumber
FROM tablename
WHERE cast(trim(case when item = ' ' then 0 else item end) as INT) < 600
这是错误
Invalid character found in a character string argument of the function DECFLOAT
仅在添加WHERE语句时才会引发错误。