Stel je hebt een tabel en je wilt alle mogelijke waarden van een bepaald veld bijv voorzieningsoort achter elkaar plakken
SELECT piv.*
, ROW_NUMBER () OVER (ORDER BY VOORZIENINGSOORT ) AS rn
, COUNT (*) OVER () AS cnt
FROM (
SELECT DISTINCT VOORZIENINGSOORT
FROM SPEEL_PIVOT
) piv ;
heeft als resultaat
zoals je ziet is er een ordening en totaal als regel teogevoegd.
Nu kan je met de hierarchische functie SYS_CONNECT_BY_PATH alle voorzieningsoort waarden achter elkaar plakken met een scheidingsteken
SELECT SYS_CONNECT_BY_PATH (VOORZIENINGSOORT,'/') FROM
(SELECT piv.*
, ROW_NUMBER () OVER (ORDER BY VOORZIENINGSOORT ) AS rn
, COUNT (*) OVER () AS cnt
FROM (
SELECT DISTINCT VOORZIENINGSOORT
FROM SPEEL_PIVOT
) piv)
WHERE 1=1 --rn = cnt
START WITH ROWNUM = 1
CONNECT BY rn = PRIOR rn + 1
levert
Wij zijn alleen geinteresseerd in de laatste regel. Dus rn=cnt
en willen een andere opmaak
SELECT SUBSTR (SYS_CONNECT_BY_PATH (VOORZIENINGSOORT, ''','''), 3) || ''''
FROM (SELECT piv.*
, ROW_NUMBER () OVER (ORDER BY VOORZIENINGSOORT ) AS rn
, COUNT (*) OVER () AS cnt
FROM (
SELECT DISTINCT VOORZIENINGSOORT
FROM SPEEL_PIVOT
) piv)
WHERE rn = cnt
START WITH ROWNUM = 1
CONNECT BY rn = PRIOR rn + 1
hiermee omsluiten we alle voorzieningsoorten met een quote en gescheiden door een komma
Jeugd - Ambulante jeugdzorg','Jeugd - Begeleiding individueel en groep','Jeugd - Behandeling (L)VB','Jeugd - Dagbehandeling jeugdzorg','Jeugd - Generalistische basis GGZ....


Geen opmerkingen:
Een reactie posten