Vì chúng là các cột khác nhau, bạn phải đề cập rõ ràng chúng một cách riêng biệt trong danh sách CHỌN. Bạn không thể làm điều đó động trong SQL thuần túy .
Tôi sẽ đề xuất, sử dụng một trình soạn thảo văn bản tốt , sẽ khó mất một hoặc hai phút để viết toàn bộ SQL.
Bạn có thể sử dụng DECODE sẽ có một số cú pháp ít hơn thay vì CASE biểu thức dài dòng.
Ví dụ:
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
Tôi khuyên bạn nên sử dụng SQL và không sử dụng PL / SQL . Chúng không giống nhau, chúng là những động cơ khác nhau. PL --> Procedural Language
.
Nhưng nếu bạn nhấn mạnh, thì bạn có thể sử dụng con trỏ cho vòng lặp để lặp qua tất cả các cột trong [ DBA | ALL | USER] _TAB_COLS . Bạn có thể sử dụng SYS_REFCURSOR để xem dữ liệu. Trước tiên, bạn sẽ phải xây dựng SQL động .