Protože se jedná o různé sloupce, musíte je výslovně uvést samostatně v seznamu SELECT. Nemůžete to dělat dynamicky v čistém SQL .
Doporučil bych použít dobrý textový editor , zápis celého SQL by stěží zabral minutu nebo dvě.
Můžete použít DECODE který bude mít o něco méně syntaxe místo CASE výraz, který je verbózní.
Například,
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
Doporučuji držet se SQL a nepoužívejte PL/SQL . Nejsou stejné, jsou to různé motory. PL --> Procedural Language
.
Ale pokud na tom trváte, můžete použít kurzor pro smyčku procházet všechny sloupce v [DBA|ALL|USER]_TAB_COLS . Můžete použít SYS_REFCURSOR abyste viděli data. Nejprve budete muset sestavit dynamický SQL .