sql >> Database >  >> RDS >> Oracle

Een CTE maken in Oracle

U kunt uw algemene tabeluitdrukking (CTE, subqueryfactoring, enz.) maken door de datumwaarden van dual te selecteren en ze allemaal samen te voegen:

with RTG_YEARS (YR) as (
  select to_date('2013-01-01', 'yyyy-mm-dd') from dual
  union all select to_date('2013-12-31', 'yyyy-mm-dd') from dual
  union all select to_date('2014-01-01', 'yyyy-mm-dd') from dual
  union all select to_date('2014-12-31', 'yyyy-mm-dd') from dual
  union all select to_date('2015-01-01', 'yyyy-mm-dd') from dual
  union all select to_date('2015-12-31', 'yyyy-mm-dd') from dual
)
select * from RTG_YEARS;

YR       
----------
2013-01-01
2013-12-31
2014-01-01
2014-12-31
2015-01-01
2015-12-31

Niet gerelateerd aan het feit dat het een CTE is, maar je kunt het typen een beetje verminderen door letterlijke datums te gebruiken:

with RTG_YEARS (YR) as (
  select date '2013-01-01' from dual
  union all select date '2013-12-31' from dual
  union all select date '2014-01-01' from dual
  union all select date '2014-12-31' from dual
  union all select date '2015-01-01' from dual
  union all select date '2015-12-31' from dual
)
select * from RTG_YEARS;



  1. Converteren van Oracle's RAW (16) naar .NET's GUID

  2. PostgreSQL - dynamische waarde als tabelnaam

  3. ONLY_FULL_GROUP_BY uitschakelen

  4. Hoe de maximale waarde van een numerieke kolom in SQL te vinden