Welcome to Our Website

SQL Server CTE (Română)

rezumat: în acest tutorial, veți afla despre expresia comună a tabelului sau CTE în SQL Server utilizând clauza WITH.

Introducere în CTE în SQL Server

CTE standuri pentru Expresie tabel comun. O CTE vă permite să definiți un nume provizoriu pe set de rezultate care sunt disponibile temporar în domeniul execuției de o mențiune precum SELECT, INSERT, UPDATE, DELETE sau MERGE.,

următoarele spectacole comune sintaxa unei CTE în SQL Server:

Code language: SQL (Structured Query Language) (sql)

În această sintaxă:

  • în Primul rând, specifica expresia numele (expression_name) pentru care va putem referi mai târziu într-o interogare.
  • apoi, specificați o listă de coloane separate prin virgulă după numele expresiei. Numărul de coloane trebuie să fie același cu numărul de coloane definite în CTE_definition.
  • apoi, utilizați cuvântul cheie AS după numele expresiei sau lista de coloane dacă este specificată lista de coloane.,
  • după, definiți o declarațieSELECT al cărei set de rezultate populează expresia comună a tabelului.
  • în cele din Urmă, se referă la masa comună de exprimare într-o interogare (SQL_statement), cum ar fi SELECT, INSERT, UPDATE, DELETE sau MERGE.

Am prefera să utilizeze masă comună expresii, mai degrabă decât de a folosi subinterogări pentru masă comună expresii sunt mai ușor de citit., De asemenea, folosim CTE în interogările care conțin funcții analitice (sau funcții de fereastră)

SQL Server CTE examples

să luăm câteva exemple de utilizare a expresiilor comune ale tabelelor.

A) Simple SQL Server CTE exemplu

Această interogare utilizează un coeficient de DILATAȚIE termică a returna sumele de vânzări de vânzări de personalul din 2018:

imaginea De mai jos prezinta setul de rezultate:

In acest exemplu:

  • în Primul rând, am definit cte_sales_amounts ca numele de masa comună de exprimare., CTE se întoarce un rezultat care este format din trei coloane staff, year și sales derivate din definiția de interogare.
  • în al Doilea rând, ne-am construit o interogare care returnează suma vânzărilor totale de către personalul de vânzări și an de interogare a datelor din orders, order_items și staffs tabele.
  • în al treilea rând, ne-am referit la CTE în interogarea exterioară și am selectat numai rândurile al căror an este 2018.,am menționat că acest exemplu este destinat exclusiv demonstrației pentru a vă ajuta să înțelegeți treptat cum funcționează expresiile comune ale tabelelor. Există o modalitate mai optimă de a obține rezultatul fără a utiliza CTE.

    B) folosind o expresie comună a tabelului pentru a face medii de raport pe baza numărului

    Acest exemplu utilizează CTE pentru a returna numărul mediu de comenzi de vânzări în 2018 pentru toate personalul de vânzări.

    Aici este de ieșire:

    Code language: SQL (Structured Query Language) (sql)

    În acest exemplu:

    în Primul rând, am folosit cte_sales ca numele de masa comună de exprimare., Am omis lista de coloane a CTE, astfel încât este derivată din Declarația de definiție CTE. În acest exemplu, include staff_idși order_count coloane.în al doilea rând, folosim următoarea interogare pentru a defini setul de rezultate care populează expresia comună a tabelului cte_sales. Interogarea returnează numărul de comenzi în 2018 de către personalul de vânzări.în al treilea rând, ne referim la cte_sales în declarația exterioară și folosim funcția AVG() pentru a obține comanda medie de vânzări de către toate personalul.,

    Code language: SQL (Structured Query Language) (sql)

    C) Folosind mai multe SQL Server CTE într-o singură interogare exemplu

    următorul exemplu utilizează două CTE cte_category_counts și cte_category_sales pentru a reveni la numărul de produse și de vânzări pentru fiecare categorie de produse. Interogarea exterioară unește două CTEs folosind coloana category_id.,

    Aici este setul de rezultate:

    În acest tutorial, ai învățat cum să utilizați masă comună expresii sau CTE în SQL Server pentru a construi interogări complexe într-un mod ușor de înțeles.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *