Разложить одну строку в SELECT

__parse__
Дата: 07.10.2015 17:54:11
Добрый день!

Есть строка вида "aaa;bbb;ccc".
Нужно получить на выходе
aaa
bbb
ccc
использование SELECT и встроенных функций
есть идеи как сделать?

Спасибо
-2-
Дата: 07.10.2015 17:59:24
__parse__
есть идеи как сделать?
можно попробовать походить на курсы поиска в интернете. как найти в интернете курсы по поиску в интернете, спроси в форуме работа.
__noparse__
Дата: 07.10.2015 17:59:27
__parse__,

Идеи есть.
Пожалуйста.
stax..
Дата: 07.10.2015 18:14:16
__parse__,

есть много вариантов решения
ora:tokenize
substr+instr
regexp_substr


.....
stax
JDS
Дата: 07.10.2015 18:16:31
Один из извратов
WITH t AS (SELECT 'aaa;bbb;ccc;assd;zczczx' f FROM dual)
   SELECT REPLACE(REGEXP_SUBSTR(f, '(^|;)\w*+', 1, LEVEL), ';', '') f
     FROM t
  CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(t.f, '[^;]'))+1

Но чудится, можно гораздо проще, во всяком случае без последнего replace наверняка )
JDS
Дата: 07.10.2015 18:24:21
всяком случае без последнего replace наверняка )

Отсюда вопрос: как РВ достать подстроку, исключив при этом символы, которые участвовали в выборе этой подстроки?
(т.е. сразу без ";") )
конечно же
Дата: 07.10.2015 18:24:35
JDS
можно гораздо проще, во всяком случае без последнего replace наверняка )
select replace(строка, ';', '
') from dual;
JDS
Дата: 07.10.2015 18:39:08
конечно же, ну нам же нужен на выходе набор строк как понимаю )
ArtNick
Дата: 08.10.2015 00:14:34
__parse__
есть идеи как сделать?

Спасибо


select * from xmltable('"aaaa","bbb"')
Тынц.
Дата: 08.10.2015 02:16:45
select substr(a, instr(a, ';', 1, level) + 1, instr(a, ';', 1, level + 1) - instr(a, ';', 1, level) - 1) item
from ( select ';' || 'aaa;bbb;ccc' || ';' a from dual)
connect by level < length(a) - length(replace(a, ';'))