By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE client ( unsorted, sorted ) AS
SELECT 'b , c ,e f, d, a', CAST( NULL AS VARCHAR2(30) ) FROM DUAL UNION ALL
SELECT 'z , y, x,w,v ,u', CAST( NULL AS VARCHAR2(30) ) FROM DUAL;
2 rows affected
UPDATE client c
SET sorted = ( SELECT LISTAGG(
REGEXP_REPLACE( REGEXP_SUBSTR( c.unsorted, '[^,]+', 1, LEVEL ), '\s+' ),
','
) WITHIN GROUP (
ORDER BY REGEXP_REPLACE( REGEXP_SUBSTR( c.unsorted, '[^,]+', 1, LEVEL ), '\s+' )
)
FROM DUAL
CONNECT BY LEVEL <= REGEXP_COUNT( c.unsorted, ',' ) + 1
)
2 rows affected
SELECT * FROM client;
UNSORTED | SORTED |
---|---|
b , c ,e f, d, a | a,b,c,d,ef |
z , y, x,w,v ,u | u,v,w,x,y,z |