sql >> Databasteknik >  >> RDS >> Oracle

Metaprogrammering oracle sql select-sats

Eftersom de är olika kolumner måste du uttryckligen nämna dem separat i SELECT-listan. Du kan inte göra det dynamiskt i ren SQL .

Jag skulle föreslå att du använder en bra textredigerare , skulle det knappast ta en minut eller två att skriva hela SQL.

Du kan använda DECODE som kommer att ha lite mindre syntax istället för CASE uttryck som är utförligt.

Till exempel,

  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

Jag skulle föreslå att du håller dig till SQL och inte använda PL/SQL . De är inte lika, de är olika motorer. PL --> Procedural Language .

Men om du insisterar kan du använda en markör för loop för att gå igenom alla kolumner i [DBA|ALL|USER]_TAB_COLS . Du kan använda en SYS_REFCURSOR för att se data. Först måste du bygga den dynamiska SQL .



  1. MySQL, Få användarrankning

  2. Hur man loggar frågor i PostgreSQL

  3. Postgres-anslutningen har stängts fel i Spring Boot

  4. ta bort objekt från databasen efter 30 minuter