Member 10525430 Ответов: 2

Sql преобразование varchar в int


Привет,
Мои данные в SQL:
T863
356
F5963
563
3659

Я хочу получить коды от 355 до 564
но я получаю ошибку от T863

Как я могу решить эту проблему?

Что я уже пробовал:

какой-то поиск в google, но есть какой-то пример для этой ситуации

2 Ответов

Рейтинг:
1

an0ther1

Короткий ответ - вы не можете - cast &/or convert вернет ошибку, если значение не удастся преобразовать в целое число.
Длинный ответ - ниже будет работать;

-- Declare a Table variable
DECLARE @MyTableVariable TABLE
(ErrorNumber INT)
-- Populate your Table variable
INSERT INTO @MyTableVariable
SELECT CAST(ErrorNumber AS INT) AS ErrorNumber
FROM MyTable
WHERE ISNUMERIC(ErrorNumber) = 1
-- Query the Table Variable
SELECT ErrorNumber 
FROM @MyTableVariable
WHERE ErrorNumber BETWEEN 355 AND 564


с уважением


Рейтинг:
1

Santosh kumar Pithani

CREATE TABLE #temp(mixedvalues VARCHAR(10));  
INSERT INTO #temp
      VALUES('T863'),
            ('356'),
            ('F5963'),
            ('563'),
            ('3659'),
            ('340T');


;WITH CTE AS(
   SELECT SUBSTRING(mixedvalues, 
            PATINDEX('%[0-9]%', mixedvalues),
               (LEN(mixedvalues)-PATINDEX('%[0-9]%',REVERSE(mixedvalues))+1)) AS 
                  NumericValues FROM #TEMP)
   SELECT * FROM CTE WHERE NumericValues between 355 and 1000;
-----------------
NumericValues
--------------
NumericValues
863
356
563