sql >> Database >  >> RDS >> Oracle

Oracle - meer zoekopdrachten in één resultaat

U kunt de resultaten in één query krijgen door de UNION-operator te gebruiken. Het leent zich niet om kostenefficiënt te zijn op grote sets, maar doet zijn werk.

  • alle zoekopdrachten moeten hetzelfde aantal kolommen van hetzelfde gegevenstype selecteren.
  • je kunt null selecteren als je een unieke kolom in een zoekopdracht hebt
  • het is ook handig om een ​​string te selecteren die de oorsprong van de gegevens aangeeft
  • de resultatenset gebruikt alleen de namen van de kolommen van de eerste zoekopdracht
  • volgorde is van toepassing op de hele resultatenset, niet op individuele zoekopdrachten

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

    van osoba,onderwerp

    waar osoba.ID_PATRI_DO=subjekt.ID

    groeperen op onderwerp.nazev

    UNIE

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

    van ZADAVACI_POSTUP,onderwerp

    waar ZADAVACI_POSTUP.id_zadavatel=subjekt.ID

    groeperen op onderwerp.nazev

    UNIE

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

    van Aplikacni_log lg sluit je aan bij zadavaci_postup zp op zp.id =lg.id_zp

    doe mee met onderwerp sb op sb.id =zp.id_zadavatel

    waar lg.create_cas> to_date('08.11.2014', 'DD.MM.YYYY')

    UNIE

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

    van(

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

    u.gebruikersnaam,u.nazev, a.datumzapisauditu

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

    van d$caudit a

    word lid van cuzivatel u op u.id=a.id_uzivatel

    word lid van osoba os op u.id_osoba_bridge =os.id

    doe mee met t$subjekt subj op subj.id =os.id_patri_do

    left join d$caaudittyp t op t.id=a.id_audittyp

    waar datumzapisauditu tussen trunc(sysdate)-7 EN trunc(sysdate)

    bestellen door a.datumzapisauditu desc)

    ;




  1. PL/pgSQL presteren versus uitvoeren

  2. Hoe limietoffset dynamisch te maken met alleen (My)SQL

  3. mySQL onderscheidend lid worden?

  4. Kun je een veld in een MySQL-query splitsen/exploderen?