Radnummerfunksjonen lar deg tilordne et sekvensielt nummer til hver rad som et resultat av en SQL -spørring.
ROW_NUMBER () -funksjonen er en del av SQL Server -vindusfunksjonene. Ved hjelp av denne funksjonen kan du tilordne et progressivt heltall til hver rad på hvert partisjonssett med et resultat. Hvert nummer starter på 1 og tilbakestiller for radene i hver partisjon.
Funksjonssyntaks og returverdi
Funksjonens syntaks er som vist:
ROW_NUMBER ()La oss bryte ned syntaks ovenfor.
Funksjonen returnerer ved å tilordne et sekvensielt nummer til radene i hver partisjon. Som nevnt vil funksjonen tilbakestille radnummeret for hver nye partisjon.
SQL Server Row_number (): Eksempler
La oss bruke et eksempel for å forstå bedre hvordan du bruker Row_Number () -funksjonen. Begynn med å opprette en eksempeldatabase med dummy -data som vist i spørsmålene nedenfor:
Opprett databasedummy_db;Ovennevnte spørring skal returnere et resulterende sett som vist:
Eksempel 1
Følgende SQL -setning bruker Row_number -funksjonen for å tilordne et sekvensielt nummer til radene i det resulterende settet:
Velg Row_number () over (Ovennevnte spørring skal returnere et resultatsett som vist nedenfor:
Eksempel 2
Vi kan bruke Row_number -funksjonen til å finne den ansatte med høyeste lønn i en bestemt avdeling.
Tenk på eksemplet som er vist nedenfor:
Velg FirstName, LastName, Lønn, avdeling, ROW_NUMBER () over (Partisjon etter avdelingsordre etter lønn DESC) som ROW_NUM FRA DUMMY_TABLE;Spørringen over deler dataene i logiske partisjoner basert på avdelingen. Vi bruker deretter Row_number () -funksjonen på bestilling etter lønnen i synkende rekkefølge.
Eksempel 3
Du kan bruke Row_number -funksjonen for paginering. Siden Row_number -funksjonen tildeler et sekvensielt nummer til alle radene, kan vi bruke det til å filtrere for et bestemt antall resultater per side.
Ta eksemplet nedenfor:
Velg * fraOvennevnte spørring skal returnere en utdata som:
Konklusjon
I denne guiden diskuterte vi hvordan du bruker SQL Server Row_number () -funksjonen for å tilordne sekvensielle tall til radene i et resultatsett. I tillegg gjennomgikk vi funksjonssyntaks og returverdi. Vi håper du fant denne artikkelen nyttig. Sjekk ut flere Linux -hint -artikler for tips og opplæringsprogrammer.