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.