我在SQL-server中遇到ISNUMERIC
函数问题。
我有一个表,其中包含一个nvarchar
类型的列。在此列中,我有123
,241
,...这样的值,有时像LK
这样的字符串值
我的查询:
WITH CTE AS (
SELECT *
FROM MyTable
WHERE ISNUMERIC([Column1]) = 1
)
SELECT *
FROM CTE
WHERE CAST(cte.Column1 AS INT) > 8000
但此查询返回此错误消息:
error converting data type nvarchar 'LK' to int
我的期望是,Common表表达式过滤所有行,其中Column1是数字而不是字符串?这是对的吗?
为什么会收到此错误?