Ниже приведен пример запрос:запроса с использованием производной таблицы с IsNumeric приводит к неспособности преобразования (VarChar в Int)
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
Если у меня есть некоторые значения VarChar, и я ограничить их числовые значения с помощью ISNUMERIC
в производной таблице в запросе, почему это приводит к ошибке преобразования ?:
Ошибка преобразования при преобразовании значения varchar '134a' в тип данных int.
Есть ли способ обойти это?
возможно дубликат [SQL Server 2008: Ошибка преобразования типа данных NVARCHAR плавать] (http://stackoverflow.com/questions/9136722/sql-server-2008-error-converting-data-type -nvarchar-to-float) – GSerg
Чтобы уточнить: не имеет значения, что у вас есть это ограничение как подзапрос. SQL Server размотал его, потому что он легко мог. – GSerg
@GSerg Можете ли вы подробно остановиться на «потому что это легко может»? – MikeM