SQL Server PIVOT (Suomi)

Yhteenveto: Tässä opetusohjelmassa opit käyttämään SQL Server -operaattoria PIVOT rivien muuntamiseksi sarakkeiksi.

Tavoitteiden asettaminen

Esittelyssä käytämme production.products ja production.categories taulukot esimerkkitietokannasta:

Seuraava kysely löytää tuotemäärän kullekin tuoteryhmälle:

Tässä on tulos:

Tavoitteenamme on muuttaa tuotoksen ensimmäisen sarakkeen luokkien nimet useiksi sarakkeiksi ja laskea kullekin tuotemäärä luokan nimi seuraavana kuvana:

Lisäksi voimme lisätä mallivuoden ryhmittelemään luokan ory mallivuosittain seuraavan tuloksen mukaisesti:

Johdanto SQL Server PIVOT -operaattoriin

SQL Server PIVOT -operaattori kiertää taulukkoarvoista lauseketta. Se muuttaa yhden sarakkeen yksilölliset arvot useiksi sarakkeiksi tulosteessa ja suorittaa aggregaatiot jäljellä oleville sarakkeiden arvoille.

Voit tehdä kyselystä pivot-taulukon seuraavasti:

  • Valitse ensin perustietojoukko kääntöä varten.
  • Luo sitten väliaikainen tulos käyttämällä johdettua taulukkoa tai yhteistä taulukkoilmausta (CTE)
  • Kolmanneksi käytä PIVOT -operaattori.

Sovelletaan näitä vaiheita seuraavassa esimerkissä.

Valitse ensin luokan nimi ja tuotetunnus production.products – ja production.categories -taulukot kääntämisen perustiedona:

Luo sitten väliaikainen tulosjoukko käyttämällä johdettua taulukkoa:

Kolmanneksi, käytä PIVOT -operaattoria:

Tämä kysely tuottaa seuraavan tuloksen:

Nyt lisätään sarake, jonka lisäät kyselyn valintaluetteloon, joka palauttaa pohja data muodostaa automaattisesti riviryhmät pivot-taulukossa. Voit esimerkiksi lisätä mallivuoden sarakkeen yllä olevaan kyselyyn:

Tässä on tulos:

Sarakearvojen luominen

Yllä olevassa kyselyssä joudut kirjoittamaan kunkin luokan nimen sulkeisiin IN operaattori manuaalisesti. Voit välttää tämän käyttämällä QUOTENAME() -toimintoa luodaksesi luokan nimiluettelon ja kopioimalla ne kyselyn päälle.

Luo ensin luokan nimiluettelo:

Lähtö näyttää tältä:

Tässä katkelmassa:

  • QUOTENAME() -funktio kääri luokan nimi hakasulkeissa, esim.
  • Funktio LEFT() poistaa viimeisen pilkun @columns-merkkijonosta .

Kopioi sitten tuoteryhmän nimiluettelo ja liitä se kyselyyn.

Dynaamiset pivot-taulukot

Jos lisäät uuden luokan nimi production.categories -taulukkoon, sinun on kirjoitettava kyselysi uudelleen, mikä ei ole ihanteellinen. Voit välttää tämän tekemällä dynaamisen SQL: n tekemällä pivot-taulukon dynaamiseksi.

Tässä kyselyssä sen sijaan, että välitettäisiin kiinteä luettelon nimien nimistä PIVOT operaattori, muodostamme luokan nimiluettelon ja välitämme sen SQL-käskyyn ja suoritamme tämän käskyn dynaamisesti käyttämällä tallennettua toimintoa sp_executesql.

Tässä opetusohjelmassa , olet oppinut käyttämään SQL Server PIVOT -taulukkoa rivien muuntamiseksi sarakkeiksi.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *