SQL Fiddle
Настройка на схемата на Oracle 11g R2 :
CREATE TABLE TEST( str ) AS SELECT 'Здравей свят - тест-тест! - test' ОТ DUALUNION ALL SELECT 'Hello world2 - test2 - test-test2' ОТ DUAL;
Запитване 1 :
SELECT Str, COLUMN_VALUE КАТО Възникване, REGEXP_SUBSTR( str ,'(.*?)([[:space:]]-[[:space:]]|$)', 1, COLUMN_VALUE, NULL, 1 ) КАТО split_valueFROM TEST, TABLE( CAST( MULTISET( ИЗБЕРЕТЕ НИВО ОТ ДВОЙНО СВЪРЗВАНЕ ПО НИВО
Резултати :
<предварителен код>| STR | ВЪЗХОДИ | SPLIT_VALUE ||----------------------------------|----------- -|--------------|| Здравей свят - тест-тест! - тест | 1 | Здравей свят || Здравей свят - тест-тест! - тест | 2 | тест-тест! || Здравей свят - тест-тест! - тест | 3 | тест || Здравей, свят2 - test2 - test-test2 | 1 | Здравей свят2 || Здравей, свят2 - test2 - test-test2 | 2 | тест2 || Здравей, свят2 - test2 - test-test2 | 3 | тест-тест2 |