sql >> Database >  >> RDS >> Oracle

Metaprogrammering Oracle SQL Select-instructie

Aangezien het verschillende kolommen zijn, moet u ze expliciet apart vermelden in de SELECT-lijst. Je kunt het niet dynamisch doen in pure SQL .

Ik zou aanraden om een ​​goede teksteditor te gebruiken , zou het nauwelijks een minuut of twee duren om de hele SQL te schrijven.

Je zou DECODE . kunnen gebruiken die wat minder syntaxis zal hebben in plaats van CASE uitdrukking die uitgebreid is.

Bijvoorbeeld,

  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

Ik zou willen voorstellen om bij SQL te blijven , en gebruik geen PL/SQL . Ze zijn niet hetzelfde, het zijn verschillende motoren. PL --> Procedural Language .

Maar als je erop staat, kun je een cursor voor lus gebruiken om alle kolommen in [DBA|ALL|USER]_TAB_COLS te doorlopen . Je zou een SYS_REFCURSOR . kunnen gebruiken om de gegevens te zien. Eerst moet je de dynamische SQL . bouwen .



  1. Omzeil tabelprivilege en WITH GRANT OPTION door views te maken

  2. Meerdere Insert-statements in MySQL Case

  3. Is er een hash-functie in PostgreSQL?

  4. Hoe ATAN() werkt in MariaDB