You can split value of that column by ;
character through use of REGEXP_SUBSTR()
, while counting the number of that characters by REGEXP_COUNT()
function
SELECT rec_key, surr_key, rec_yr, manufacturer, model_name,
TRIM( REGEXP_SUBSTR(eng_power,'[^;]+',1,level) ) AS eng_power
FROM tab
CONNECT BY level <= REGEXP_COUNT(eng_power,';') + 1
AND PRIOR SYS_GUID() IS NOT NULL
AND PRIOR rec_key = rec_key
Demo
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…