我有以下简单的sql
SELECT TOP 1000 *
FROM CallRecords
where clientId = 4 and
resultcodeId > 1 and
ISNUMERIC(extension) = 1 and
Convert(int,extension) > 72320 and Convert(int,extension) < 73000
我收到以下错误
Msg 245, Level 16, State 1, Line 2
Conversion failed when converting the nvarchar value 'b01004957003' to data type int.
显然,一个扩展名包含&#39; b01004957003&#39;
但是我认为sql会在ISNUMERIC(扩展名)= 1
之后停止检查任何线索?
答案 0 :(得分:1)
尝试将转换保留在外部查询
中SELECT *
FROM (SELECT TOP 1000 *
FROM CallRecords
WHERE clientId = 4
AND resultcodeId > 1
AND Isnumeric(extension) = 1) A
WHERE CONVERT(INT, extension) > 72320
AND CONVERT(INT, extension) < 73000