я хочу найти первое целочисленное значение из столбца varchar - PullRequest
0 голосов
/ 19 сентября 2018

у меня есть данные ниже в таблице.

ID
test_SQL_01
test_SQL_02_PQR_01
test_SQL_03_055
test_SQL_04_ABC_99

Я хочу вывод, как показано ниже.

ID
01
02
03
04

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Этот метод может обрабатывать вложенные числа различной длины

Тестовые данные:

DECLARE @t table(ID varchar(50))
INSERT @t values
('1'),
('2abc'),
('a3'),
('test_SQL_01'),
('test_SQL_02_PQR_01'),
('test_SQL_03_055'),
('test_SQL_04_ABC_99')

Запрос:

SELECT 
  STUFF(LEFT(ID, patindex('%[0-9][^0-9]%', ID + 'x')), 1, 
    patindex('%[^0-9][0-9]%', ID), '')
FROM @t

Результат:

1
2
3
01
02
03
04
0 голосов
/ 19 сентября 2018

Если значение INTERGER всегда имеет 2 цифры, то yo может сделать:

select substring(ID, patindex('%[0-9]%', ID), 2) as ID
from table t;
...