Как найти самый длинный шаблон чисел, используя TSql - PullRequest
0 голосов
/ 22 октября 2011

У меня есть, скажем, таблица, как под

Values
--------
12Null345XXX23456
6712356

Expected Output
----------------
23456
123

Как я могу сделать это, используя TSql (предпочтительный набор на основе)?

Спасибо

1 Ответ

1 голос
/ 22 октября 2011

Итак, вы хотите самую длинную подстроку последовательных числовых цифр?Может быть, что-то вроде этого (т. Е. Здесь воссоздается исходная таблица; если она уже существует, пропустите этот CTE и используйте свою таблицу)?:

;with ten as (
select i from (values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) x(i)
), subs as (
select SUBSTRING('0123456789',s.i,l.i) as sub, l.i as run
from ten as s
join ten as l on s.i+l.i<=11
), t as (
select s
from (
values ('12Null345XXX23456'),('6712356'))x(s)
)
select x.sub  
from t
cross apply (select top 1 subs.sub 
             from subs 
             where CHARINDEX(subs.sub,t.s)>0 
             order by subs.run desc) x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...