Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: MSSQL вытащить из строки число  [new]
invm
Member

Откуда: Москва
Сообщений: 9438
DECLARE @s nvarchar(255);
SET @s = ' 4.20.2.6.1.  Реабилитация травматологических больных  (21дн.)';

with cte(s) as
(
 select
  right(@s, len(@s) - nullif(patindex('%([0-9]%)', @s), 0))
)
select
 substring(s, 1, patindex('%[^0-9]%', s) - 1)
from
 cte;
5 июл 12, 16:56    [12823646]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL вытащить из строки число  [new]
НадеждаМ
Member

Откуда:
Сообщений: 812
Спасибо всем за советы и примеры. Завтра попробую ваши варианты.
5 июл 12, 17:01    [12823672]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL вытащить из строки число  [new]
iap
Member

Откуда: Москва
Сообщений: 47007
НадеждаМ
iap,

Попробовала. если между 21и "дн." нет пробела, то получается в итоге "21д".
DECLARE @s nvarchar(255)=N' 4.20.2.6.1.  Реабилитация травматологических больных  (21 дн.)';

SELECT LEFT(s,NULLIF(PATINDEX(N'%[^0-9]%',s)-1,0))
FROM (SELECT STUFF(@s,1,1+LEN(@s)-CHARINDEX(N'(',REVERSE(@s),CHARINDEX(N')',REVERSE(@s))),N''))S(s);
5 июл 12, 17:07    [12823719]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL вытащить из строки число  [new]
iap
Member

Откуда: Москва
Сообщений: 47007
iap
НадеждаМ
iap,

Попробовала. если между 21и "дн." нет пробела, то получается в итоге "21д".
DECLARE @s nvarchar(255)=N' 4.20.2.6.1.  Реабилитация травматологических больных  (21 дн.)';

SELECT LEFT(s,NULLIF(PATINDEX(N'%[^0-9]%',s)-1,0))
FROM (SELECT STUFF(@s,1,1+LEN(@s)-CHARINDEX(N'(',REVERSE(@s),CHARINDEX(N')',REVERSE(@s))),N''))S(s);
Выбирается самое первое число в самых последних круглых скобках
5 июл 12, 17:09    [12823735]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL вытащить из строки число  [new]
iap
Member

Откуда: Москва
Сообщений: 47007
iap
Выбирается самое первое число в самых последних круглых скобках
Только вот между левой скобкой и числом ничего не должно быть.
Плохо.
5 июл 12, 17:12    [12823742]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить