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

Откуда: Rudnyy
Сообщений: 198
Здравствуйте!
есть такие строки:
ИП Бабаева Н.А. 0091811*
ИП Естифеев И.В. 0010482* 
ИП Сергалиева Ж.С. 0089471*
ИП Соболева А.А. 0009920* 29.10.
ИП Торской С.И. 0009930*   
ИП Шатилова Н.В.0005988*
ТОО "Балхаштамак" 0089432*                                                                                                
ИП Бабаева Н.А.
ИП Естифеев И.В.
ИП Сергалиева Ж.С.
ИП Соболева А.А.
ИП Торской С.И.
ИП Шатилова Н.В.
ТОО "Балхаштамак"
из них нужно сформировать так
как это можно реализовать?
3 ноя 09, 08:20    [7874361]     Ответить | Цитировать Сообщить модератору
 Re: заморочки со строками  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
LEFT + PATINDEX/CHARINDEX
3 ноя 09, 08:23    [7874369]     Ответить | Цитировать Сообщить модератору
 Re: заморочки со строками  [new]
yaros-hoi
Member

Откуда: Rudnyy
Сообщений: 198
tpg,

можно подробнее пожалуйста
3 ноя 09, 08:32    [7874378]     Ответить | Цитировать Сообщить модератору
 Re: заморочки со строками  [new]
Mikle83
Member

Откуда: Санкт-Петербург
Сообщений: 629
При наличии вот таких строк:
ИП Шатилова Н.В.0005988*
на мой взгляд, задача не имеет решения,
ибо отличить
ТОО "Балхаштамак" 0089432
от
ТОО "Балхаштамак 0089432" 0089433
не реально. Либо нужен нормальный уникальный критерий начала цифрового кода: например четко установить, что он начинается с двух нулей (00) и в названии контор/ИП/ООО/итп/итд никогда не встретятся два нуля.

В противном случае вам прийдется делать постобработку с проверкой данных.
3 ноя 09, 08:35    [7874381]     Ответить | Цитировать Сообщить модератору
 Re: заморочки со строками  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Правила разбора строк самому придумать, да?
Ну, ладно:
DECLARE @S VARCHAR(100)='"ИП Бабаева Н.А. 0091811" 0091811* 29.10';
SELECT RTRIM(REVERSE(STUFF(STUFF(REVERSE(@S),1, PATINDEX('%*[0-9]%', REVERSE(@S)),''),1, PATINDEX('%[0-9][^0-9]%', STUFF(REVERSE(@S),1, PATINDEX('%*[0-9]%', REVERSE(@S)),'')),'')));
3 ноя 09, 09:51    [7874611]     Ответить | Цитировать Сообщить модератору
 Re: заморочки со строками  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
ну вариант с "колбасой" тоже иногда не плох :)
declare @s varchar(50)
select @s='ИП Бабаева Н.А. 0031211'

select replace(replace(replace(replace(@s,'0',''),'1',''),'2',''),'3','')
--------------------------------------------------------------
Дьявол кроется в деталях.
3 ноя 09, 10:05    [7874699]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить