Da de er forskellige kolonner, skal du udtrykkeligt nævne dem separat i SELECT-listen. Du kan ikke gøre det dynamisk i ren SQL .
Jeg vil foreslå, at du bruger en god teksteditor , ville det næppe tage et minut eller to at skrive hele SQL.
Du kan bruge DECODE som vil have noget mindre syntaks i stedet for CASE udtryk, der er verbose.
For eksempel,
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
Jeg vil foreslå at holde dig til SQL , og ikke bruge PL/SQL . De er ikke ens, de er forskellige motorer. PL --> Procedural Language
.
Men hvis du insisterer, så kan du bruge en markør for loop at gå gennem alle kolonnerne i [DBA|ALL|USER]_TAB_COLS . Du kan bruge en SYS_REFCURSOR for at se dataene. Først skal du bygge den dynamiske SQL .