powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Перегнать строку с разделителями в записи таблицы
4 сообщений из 4, страница 1 из 1
Перегнать строку с разделителями в записи таблицы
    #36223475
kasyanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеются данные, полученные из сторонней системы.
В одном поле несколько значений перечисляются через разделитель.
Нужно представить это реляционно, то есть строкой на каждое значение.

Пример.

create table mytest(id int, myfield varchar(64));
insert into mytest (1, 'строка11, строка12, строка13');
insert into mytest (2, 'строка21, строка22');

Нужно получить выборку

1 строка11
1 строка12
1 строка13
2 строка21
2 строка22

Операция одноразовая, только чтобы перелить данные. Как это без затей сделать?

Спасибо.
Алексей
...
Рейтинг: 0 / 0
Перегнать строку с разделителями в записи таблицы
    #36224268
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasyanov,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with a(id, token, rest) as (
select id
, ltrim(substr(myfield,  1 , coalesce(nullif(posstr(myfield, ','),  0 )- 1 , length(myfield)))) token
, ltrim(substr(myfield, nullif(posstr(myfield, ','),  0 )+ 1 )) rest
from mytest
  union all
select id
, ltrim(substr(rest,  1 , coalesce(nullif(posstr(rest, ','),  0 )- 1 , length(rest)))) token
, ltrim(substr(rest, nullif(posstr(rest, ','),  0 )+ 1 )) rest
from a
where rest is not null
)
select id, token
from a
order by id
...
Рейтинг: 0 / 0
Перегнать строку с разделителями в записи таблицы
    #36224446
kasyanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк, спасибо за готовое решение! Я предполагал, что можно просто через рекурсивный sql без всяких табличных функций, но самому тяжко - Вы мне сэкономили время.
С уважением,
Алексей
...
Рейтинг: 0 / 0
Перегнать строку с разделителями в записи таблицы
    #36224738
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasyanov,

Для готовых решений CookBook неплохо посмотреть. Там такая задача есть. На будущее может пригодится.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Перегнать строку с разделителями в записи таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]