sql >> Databáze >  >> RDS >> Oracle

Oracle – více dotazů v jednom výsledku

Výsledky můžete získat v jednom dotazu pomocí operátoru UNION. Nehodí se jako nákladově efektivní na velkých sadách, ale svou práci plní.

  • všechny dotazy musí vybrat stejný počet sloupců stejného datového typu.
  • Pokud máte v dotazu jedinečný sloupec, můžete vybrat hodnotu null
  • je také užitečné vybrat řetězec označující původ dat
  • výsledková sada použije pouze názvy sloupců prvního dotazu
  • řazení se vztahuje na celou sadu výsledků, nikoli na jednotlivé dotazy

    select count(*) AS R_COUNT, 'OSABA' AS SOURCE,subjekt.nazev , null, null,null,null

    od osoba,subjekt

    kde osoba.ID_PATRI_DO=subjekt.ID

    skupina podle předmětu.nazev

    UNION

    select count(*),'ZADAVACI_POSTUP', subjekt.nazev , null, null,null,null

    ze ZADAVACI_POSTUP,subjekt

    kde ZADAVACI_POSTUP.id_zadavatel=subjekt.ID

    skupina podle předmětu.nazev

    UNION

    vyberte NULL,'Aplikacni_log', sb.nazev, lg.create_uzivatel, lg.create_cas,null,null

    z Aplikacni_log lg join zadavaci_postup zp na zp.id =lg.id_zp

    připojit subjekt sb na sb.id =zp.id_zadavatel

    kde lg.create_cas> to_date('08.11.2014', 'DD.MM.RRRR')

    UNION

    select count(*) pocet,'SUBQUERY', do_dne_včetně,nazev_organizace,max(trunc(sysdate)-6) ode_dne_včetně,max(trunc(sysdate))

    od (

    select to_char(t.popis) popis_typu,subj.nazev nazev_organizace,

    u.username,u.nazev, a.datumzapisauditu

    ,to_char(a.datumzapisauditu,'DD.MM.YYYY') datum , a.id

    z d$caudit a

    připojte se k cuzivatel u na u.id=a.id_uzivatel

    připojte se k osobě os na u.id_osoba_bridge =os.id

    připojte se k t$subjekt subj na subj.id =os.id_patri_do

    vlevo připojit d$caudittyp t na t.id=a.id_audittyp

    kde datumzapisauditu mezi trunc(sysdate)-7 AND trunc(sysdate)

    objednat podle a.datumzapisauditu desc)

    ;




  1. Jak získat pouze tabulky, nikoli pohledy pomocí SHOW TABLES?

  2. Mohu stránkovat vlastní dotaz bez přepsání výchozího stránkování?

  3. Modelování databázových tabulek uživatelů, skupin a členství

  4. Existuje funkce MD5 Sum v PL/SQL