Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Die Abfrage mit einer abgeleiteten Tabelle mit ISNUMERIC führt zu einem Konvertierungsfehler (varchar in int)

Das WHERE Klausel wird zuerst ausgeführt. Versuchen Sie:

DECLARE @table table (loc varchar(10)) 

INSERT INTO @table VALUES 
('134a'), ('123'), ('abc'), ('124') 

SELECT *  
FROM ( 
    SELECT * FROM @table
) as a 
WHERE ISNUMERIC(loc) = 1 and CAST(loc as INT) BETWEEN 100 AND 200