SQL | CU clauza

SQL | CU clauza

Clauza SQL WITH a fost introdusă de Oracle în baza de date Oracle 9i release 2. Clauza SQL WITH vă permite să dați un nume unui bloc sub-interogare (un proces numit și refactorizare sub-interogare), care poate fi referit în mai multe locuri din interogarea SQL principală.

  • Clauza este utilizată pentru definirea unei relații temporare, astfel încât rezultatul acestei relații temporare să fie disponibilă și să fie utilizată de interogarea asociată cu clauza WITH.
  • Interogările care au o clauză WITH asociată pot fi, de asemenea, scrise folosind sub-interogări imbricate, dar adaugă mai multă complexitate pentru a citi/depana interogarea SQL.
  • Clauza WITH nu este acceptată de toate sistemele de baze de date.
  • Numele atribuit subinterogării este tratat ca și cum ar fi o vizualizare sau un tabel inline
  • Clauza SQL WITH a fost introdusă de Oracle în baza de date Oracle 9i release 2.

Sintaxă:

WITH temporaryTable (averageValue) as (SELECT avg(Attr1) FROM Table) SELECT Attr1 FROM Table, temporaryTable WHERE Table.Attr1>temporaryTable.averageValue;>>>   

În această interogare, clauza WITH este utilizată pentru a defini o relație temporară temporaryTable care are doar 1 atribut averageValue. averageValue deține valoarea medie a coloanei Attr1 descrisă în relația Tabel. Instrucțiunea SELECT care urmează clauzei WITH va produce numai acele tupluri în care valoarea lui Attr1 în relația Table este mai mare decât valoarea medie obținută din instrucțiunea clauzei WITH.

Notă: Când se execută o interogare cu o clauză WITH, mai întâi interogarea menționată în clauză este evaluată și rezultatul acestei evaluări este stocat într-o relație temporară. În continuare, interogarea principală asociată cu clauza WITH este în sfârșit executată care ar folosi relația temporară produsă.

Întrebări

Exemplul 1: Găsiți toți angajații al căror salariu este mai mare decât salariul mediu al tuturor angajaților.
Denumirea relatiei: Angajat

Card de identitate al angajatului Nume Salariu
100011 Smith 50000
100022 Factură 94000
100027 Se 70550
100845 Walden 80000
115585 Erik 60000
1100070 Kate 69000

Interogare SQL:

Tutorial de învățare automată