Aangezien het verschillende kolommen zijn, moet u ze expliciet apart vermelden in de SELECT-lijst. Je kunt het niet dynamisch doen in pure SQL .
Ik zou aanraden om een goede teksteditor te gebruiken , zou het nauwelijks een minuut of twee duren om de hele SQL te schrijven.
Je zou DECODE . kunnen gebruiken die wat minder syntaxis zal hebben in plaats van CASE uitdrukking die uitgebreid is.
Bijvoorbeeld,
DECODE(ONE, 1, 1, 0) AS col1,
DECODE(JUST_ONE, 1, 1, 0) AS col2,
DECODE(ANOTHER_ONE, 1, 1, 0) AS col3,
DECODE(TWO, 1, 1, 0) AS col4,
DECODE(JUST_TWO, 1, 1, 0) AS col5,
DECODE(ANOTHER_TWO, 1, 1, 0) as col6
Ik zou willen voorstellen om bij SQL te blijven , en gebruik geen PL/SQL . Ze zijn niet hetzelfde, het zijn verschillende motoren. PL --> Procedural Language
.
Maar als je erop staat, kun je een cursor voor lus gebruiken om alle kolommen in [DBA|ALL|USER]_TAB_COLS te doorlopen . Je zou een SYS_REFCURSOR . kunnen gebruiken om de gegevens te zien. Eerst moet je de dynamische SQL . bouwen .