Oracle
 sql >> база данни >  >> RDS >> Oracle

Метапрограмиране на oracle sql select оператор

Тъй като те са различни колони, трябва изрично да ги посочите отделно в списъка ИЗБОР. Не можете да го направите динамично в чист SQL .

Предлагам да използвате добър текстови редактор , едва ли ще отнеме минута или две, за да напишете целия SQL.

Можете да използвате DECODE което ще има малко по-малко синтаксис вместо CASE израз, който е многословен.

Например,

  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

Предлагам да се придържате към SQL , а не да използвате PL/SQL . Не са еднакви, различни двигатели са. PL --> Procedural Language .

Но ако настоявате, можете да използвате цикъл на курсора за за преминаване през всички колони в [DBA|ALL|USER]_TAB_COLS . Можете да използвате SYS_REFCURSOR за да видите данните. Първо ще трябва да създадете динамичния SQL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubuntu ORA-24960:атрибутът OCI_ATTR_USERNAME е по-голям от максималната допустима дължина от 255

  2. Паралелен мениджър на Oracle

  3. SQL - Разделете една колона на няколко колони

  4. Схема за обратно инженерство (оракул) към ERD

  5. Най-добра практика за пагинация в Oracle?