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.