Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 какиз  [new]
poi3
Guest
Как из таблички с двумя столбцами
qwe q;w
ert t;y;y

получить пять строк с двумя столбцами
qwe q
qwe w
ert t
ert y
ert y

?
18 июн 13, 18:25    [14449872]     Ответить | Цитировать Сообщить модератору
 Re: какиз  [new]
AmKad
Member

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

stff unpivot
18 июн 13, 18:27    [14449884]     Ответить | Цитировать Сообщить модератору
 Re: какиз  [new]
poi3
Guest
AmKad,

а если 10g
18 июн 13, 18:28    [14449887]     Ответить | Цитировать Сообщить модератору
 Re: какиз  [new]
-2-
Member

Откуда:
Сообщений: 15330
poi3
а если 10g
поиск на форуме не зависит от твоей версии оракла
18 июн 13, 18:39    [14449945]     Ответить | Цитировать Сообщить модератору
 Re: какиз  [new]
stax..
Guest
AmKad
poi3,

stff unpivot

как ему поможет unpivot, у исходной таблички две клонки (данные через разделитель)

......
stax
18 июн 13, 18:50    [14450023]     Ответить | Цитировать Сообщить модератору
 Re: какиз  [new]
stax..
Guest
poi3,

вариантов есть много, мне больше всего нравится SY c xmltable

по старинке

  1  WITH t AS
  2  (SELECT 'qwe' id, 'q1;w2' s from dual union all
  3   SELECT 'ert' id, 't;y;y' from dual
  4  )
  5  select id,level,substr(s, instr(';'||s,';', 1, level),
  6  instr(';'||s||';', ';', 1, level+1)-instr(';'||s, ';', 1, level)-1) w
  7    from t
  8  connect by level <= length(trim(s)) - length(trim(replace(s, ';'))) + 1
  9  and prior id=id
 10* AND PRIOR dbms_random.value IS NOT NULL
SQL> /

ID       LEVEL W
--- ---------- -----
ert          1 t
ert          2 y
ert          3 y
qwe          1 q1
qwe          2 w2

.....
stax
18 июн 13, 19:08    [14450094]     Ответить | Цитировать Сообщить модератору
 Re: какиз  [new]
poi3
Guest
stax..,

спасибо
18 июн 13, 19:15    [14450125]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить