Begrens i Oracle

Begrens i Oracle

I de fleste tilfeller består databaser av tusenvis til millioner av poster i en tabell. Det kan være skremmende å gjennomgå alle postene manuelt når du utfører spørsmål.

Derfor må du bruke forskjellige klausuler i SQL, for eksempel betingede utsagn, mønster-matchende funksjoner, operatører osv. Selv da kan du ende opp med mange poster for å sortere gjennom.

Vi kan bruke grensefunksjonaliteten i SQL og andre SQL-lignende dialekter for ytterligere å begrense antallet rader som returneres fra en gitt spørring.

Dette innlegget vil diskutere et kort format for å begrense antall poster som er returnert fra et gitt Oracle Query. Husk at det ikke er noen begrensningsklausul i Oracle -databasen, som du vil finne i andre databaser som MySQL, PostgreSQL osv.

Oracle Rownum

For at vi skal implementere en grense-lignende klausul, skal vi bruke Rownum-funksjonen i SQL. Denne funksjonen returnerer antall rader i et gitt resultat.

La oss utforske hvordan vi kan bruke denne funksjonen.

Eksempelbruk

Anta at vi har en tabell med ansattes informasjon, som vist på bildet nedenfor:

Problem

Anta at vi ønsker å hente de fem første kolonnene fra tabellen over og ignorere resten?

Løsning

Vi kan bruke et underspørs som vist i utdraget nedenfor:

plukke ut *
Fra (Select Employee_id, First_name, last_name, lønn fra ansatte bestilling av ansattes_id ASC)
hvor rownum <= 5;

I spørringen over definerer vi en undervisning ved å bruke FRA -leddet. Deretter henter subquery målkolonnene og sorterer radene i stigende rekkefølge basert på ansatt_id.

Til slutt definerer vi en betinget uttalelse som sikrer at det returnerte antall rader er mindre enn eller lik 5. Dette tvinger antall poster fra spørringen for å stoppe klokka fem.

Et eksempelutgang er som vist:

Husk at bruk av subquery sikrer at radene er sortert i stigende eller synkende rekkefølge. Så for eksempel, hvis du ønsker å hente fem tilfeldige rader, løp:

Velg Employee_ID, First_name, Last_name, Lønn
fra ansatte
hvor rownum <= 5;

Produksjon:

Fra utgangen ovenfor kan det hende du ikke legger merke til forskjellen. Å kjøre spørringen uten ordre etter klausul i usorterte data vil imidlertid resultere i et tilfeldig sett med verdier.

Konklusjon

Denne korte, men verdifulle opplæringen utforsket implementering av begrensningsklausulen i Oracle -databasen ved å bruke Rownum -verdien.