Ponieważ są to różne kolumny, należy je wyraźnie wymienić na liście WYBIERZ. Nie można tego robić dynamicznie w czystym SQL .
Proponuję użyć dobrego edytora tekstu , napisanie całego kodu SQL nie zajmie minuty lub dwóch.
Możesz użyć DECODE który będzie miał mniejszą składnię zamiast CASE wyrażenie, które jest pełne.
Na przykład
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
Proponuję trzymać się SQL i nie używaj PL/SQL . Nie są takie same, to różne silniki. PL --> Procedural Language
.
Ale jeśli nalegasz, możesz użyć kursora dla pętli aby przejść przez wszystkie kolumny w [DBA|ALL|USER]_TAB_COLS . Możesz użyć SYS_REFCURSOR aby zobaczyć dane. Najpierw musisz zbudować dynamiczny SQL .