Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите распарсить строку  [new]
user87
Member

Откуда:
Сообщений: 257
Добрый день.

Подскажите, пожалуйста, у меня есть множество данных, такого типа

тестовый адрес Москва - 3

Можно ли сделать так, что при добавлении другой строки я нахожу тестовый адрес Москва - 3, выделяю последнюю цифрц и прибалвю + 1, чтобы получилось
тестовый адрес Москва - 4

начал делать через substring
declare
@cmd varchar(max) = 'тестовый адрес Москва - 3'

select substring(@cmd,1,len(@cmd))
Но не могу сообразить, как мне втрой параметр высчитать(
Пробовал через replace, убирал символ не числовые,
SELECT REPLACE(@cmd,'тестовый','');
но думаю как-то можно поизящней сделать, но не могу сообразить как
17 апр 14, 17:39    [15897547]     Ответить | Цитировать Сообщить модератору
 Re: помогите распарсить строку  [new]
sqluserfromhell
Member

Откуда:
Сообщений: 864
user87,

charindex '-' и вперед
17 апр 14, 17:57    [15897639]     Ответить | Цитировать Сообщить модератору
 Re: помогите распарсить строку  [new]
user87
Member

Откуда:
Сообщений: 257
Спасибо за подсказку, понимаю, что некрасиво, но работает)

declare
@cmd varchar(max) = 'тестовый адрес Москва - 3'
select REPLACE(replace(substring(@cmd,CHARINDEX('-', @cmd),len(@cmd)),'-',''),' ','') +1
17 апр 14, 18:18    [15897732]     Ответить | Цитировать Сообщить модератору
 Re: помогите распарсить строку  [new]
user87
Member

Откуда:
Сообщений: 257
Извиняюсь, что переподнимаю тему, направьте, пожалуйста


Если у меня имеется

DECLARE
@cmd VARCHAR(MAX) = 'Москва, 2-й МКАД ("Тест") - 3'
SELECT SUBSTRING(@cmd,1,CHARINDEX('-', @cmd)) + ' '+ cast(REPLACE(REPLACE(SUBSTRING(@cmd,CHARINDEX('-', @cmd),LEN(@cmd)),'-',''),' ','') + 1 as varchar(255))

Как мне сделать так, чтобы скрипт именно от последнего знака "-" фильтровал
18 апр 14, 10:13    [15899664]     Ответить | Цитировать Сообщить модератору
 Re: помогите распарсить строку  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
user87,

последний знак слева - это первый знак справа!!
REVERSE()
18 апр 14, 10:14    [15899668]     Ответить | Цитировать Сообщить модератору
 Re: помогите распарсить строку  [new]
user87
Member

Откуда:
Сообщений: 257
Супер, спасибо, все ок)
18 апр 14, 10:36    [15899790]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить