Here's an example query:
DECLARE @table table (loc varchar(10))
INSERT INTO @table VALUES
('134a'), ('123'), ('abc'), ('124')
SELECT *
FROM (
SELECT * FROM @table WHERE ISNUMERIC(loc) = 1
) as a
WHERE CAST(loc as INT) BETWEEN 100 AND 200
If I have some varchar values and I limit them to numeric values using ISNUMERIC
in a derived table in the query, why does it result in a conversion error?:
Conversion failed when converting the varchar value '134a' to data type int.
Is there a way around this?
The
WHERE
clause executes first. Try: