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

Откуда:
Сообщений: 184
Доброго времени форумчане !
Имеется переменная
declare @parse nvarchar(max) = 'p1=201,p22=129,p3=5555555555,p21=''1234567*22.08.2013*12.00'',p5=''some_text1'',p12=12.0|p1=202,p22=145,p3=4515125,p21=''12756624*16.08.2013*15.00'',p5=''some_tex2t'',p12=16.0|p1=105,p22=103,p3=54658294572,p21=''54112124*16.09.2013*11.00'',p5=''some_text3'',p12=20.0|p1=10,p22=20,p3=30,p21=''42421212*16.09.2014*11.15'',p5=''some_text4'',p12=45.0'

из котрого нужно получить дату в виде таблицы:

p1     p22     p3            p21                         p5           p12
201   129     5555555555    1234567*22.08.2013*12.00    some_text1    12.0
202   145     4515125       12756624*16.08.2013*15.00   some_text2    16.0
105   103     54658294572   54112124*16.09.2013*11.00   some_text3    20.0
10    20      30            42421212*16.09.2014*11.15   some_text4    45.0


Сам решил таким способом
declare @parse nvarchar(max) = 'p1=201,p22=129,p3=5555555555,p21=''1234567*22.08.2013*12.00'',p5=''some_text1'',p12=12.0|p1=202,p22=145,p3=4515125,p21=''12756624*16.08.2013*15.00'',p5=''some_tex2t'',p12=16.0|p1=105,p22=103,p3=54658294572,p21=''54112124*16.09.2013*11.00'',p5=''some_text3'',p12=20.0|p1=10,p22=20,p3=30,p21=''42421212*16.09.2014*11.15'',p5=''some_text4'',p12=45.0'

Set @parse = replace(@parse, '|', ' UNION ALL ')
Set @parse = replace(@parse, 'p1=', ' SELECT ')
Set @parse = replace(@parse, 'p22=', '')
Set @parse = replace(@parse, 'p3=', '')
Set @parse = replace(@parse, 'p21=', '')
Set @parse = replace(@parse, 'p5=', '')
Set @parse = replace(@parse, 'p12=', '')

EXEC (@parse)


но он мне не очень нравится,посоветуйте пожалуйста как будет лучше ? Можно его решить без динамического запроса ?
15 фев 16, 16:19    [18819070]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация разделения строки  [new]
Glory
Member

Откуда:
Сообщений: 104751
NewBie77
нравится,посоветуйте пожалуйста как будет лучше ? Можно его решить без динамического запроса ?

Решали уже тысяч сто раз. И тем несколько тысяч создавали. И стаьи переводили, даже срезультатами тестирования разных методов. И все в этом форуме.
Представляете ?
15 фев 16, 16:21    [18819093]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация разделения строки  [new]
functionS
Guest
Функция, которая делит строку на слова
15 фев 16, 16:23    [18819128]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация разделения строки  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
Массивы и Списки в SQL Server
15 фев 16, 16:31    [18819208]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить