Site Overlay

SQLShack (Norsk)

SQL-While-løkke brukes gjentatte ganger for å utføre en bestemt del av SQL-skript.

Denne artikkelen tar for seg noen av de grunnleggende funksjonene i SQL Mens loop i Microsoft SQL Server, ved hjelp av eksempler.,

SQL Mens loop syntaks

syntaksen for SQL Mens loop er som følger:

1
2
3
4

MENS tilstanden
BEGYNNER
//SQL-uttrykk
END;

mens loop i SQL begynner med MENS nøkkelord etterfulgt av tilstanden som returnerer en Boolsk verdi, dvs., Sant eller Usant.

kroppen av mens loop holder du utfører mindre tilstanden returnerer den false. Kroppen på en stund loop i SQL starter med en BEGYNNER blokkere og avsluttes med en SLUTT-blokk.,div>

1
2
3
4
5
6
7
8

OM @INT teller;
ANGI @teller = 1;
MENS @teller<= 5
BEGYNNER
PRINT @teller
ANGI @count = @teller + 1;
END;

I skriptet ovenfor, kan vi for første gang om heltall type variabel @telle og sette verdien til 5.,

Neste, vi utføre en Stund loop som sjekker om verdien av @count variabelen er mindre enn eller lik 5. Hvis @count variabel har en verdi som er mindre enn eller lik 5, kroppen av løkken utføres, og den aktuelle verdien av @count variabelen er angitt på konsollen.

I neste linje, verdien av @count variabel øker med 1. Mens loop holder du utfører inntil verdien av @count variabel blir større enn 5., Her er resultatet:

Sette inn poster med SQL Mens loop

La oss nå se hvordan SQL Mens loop brukes til å sette inn dummy-poster i en database tabell.

For dette trenger vi en enkel database «CarShop»:

1
OPPRETTE DATABASE CarShop

Vi vil lage en tabell, dvs., Biler i CarShop database. Bilene bord vil ha tre kolonner-Id, Navn og Pris.,

1
2
3
4
5
6
7

BRUK CarShop
OPPRETT BORD Biler
(
Id INT PRIMARY KEY IDENTITET(1,1),
Navn VARCHAR (50) NOT NULL,
Pris INT
)

La oss nå bruke den Mens loop i SQL å sette inn 10 poster i Biler-tabellen., Utfør følgende script:

I skriptet ovenfor, er vi igjen deklarere en variabel @telle og initialisere det med 1. Neste, mens en loop er utført til verdien av @count variabel blir større enn 10, som betyr at mens løkken kjører 10 ganger.

I kroppen av mens loop, INSERT-query brukes for å sette inn en post i Biler-tabellen. For kolonnen Navn, verdien av @count variabel er lagt til med den strengen Car-. For Pris kolonne av Biler tabellen, verdien av @count variabel er multiplisert med 100.,

Nå, hvis du velger alle poster fra Biler tabell med «SELECT * FROM Cars» spørring, bør du se følgende resultat:

Implementering av personsøker med SQL Mens loop

mens loop kan også brukes til å implementere personsøker. Personsøker refererer til å vise et delsett av postene data fra en tabell til en hver tid.

I det følgende skript, mens loop vil bli brukt til å velge to poster fra Biler bord av gangen., Den valgte postene vises i konsollen utgang:

I skriptet ovenfor, vi initialisere to variabler, dvs. @telle og @grense. Startverdiene for @telle og @begrense variabler er 0 og 2, henholdsvis. Mens løkken utføres mens verdien av @count variabel fortsatt mindre enn 10.

Inne i while-løkke, OFFSET punkt brukes til å hoppe over de første N rader av Biler tabellen. Det HENTE NESTE punkt henter neste N-poster.

I den første iterasjonen, verdien av FORSKYVNINGEN vil være 0 siden @antallet er 0, er de to første postene vil bli vist., I det andre stadiet, siden @count variabel har verdien 2, de to første postene vil bli hoppet over, og postene 3 og 4 vil bli hentet.

På denne måten, alle postene fra Biler-tabellen vil bli hentet i sett av to. Resultatet er som følger:

I utgang, kan du se alle postene fra Biler-tabellen, trykt i sett med to på konsollen.

FORTSETT og BRYTE uttalelser

FORTSETT uttalelse er brukt til å skifte kontrollen tilbake til starten av en stund loop i SQL., BREAK-setningen brukes til å avslutte loopen.

følgende skript viser hvordan du kan bruke FORTSETTE uttalelse inne en stund løkke til å skrive ut de første fem positive selv heltall:

I skriptet ovenfor, mens løkken kjører til verdien av @count variabel fortsatt mindre enn eller lik 10. Den første verdien av @count variabelen er 1.

I kroppen av loopen, verdien av resten av @count delt på 2 er lagret i @mod variabel., Hvis verdien av @count variabel er merkelig, resten vil være 1, og hvis resten er 0, FORTSETTE uttalelse er brukt for å flytte kontrollen tilbake til starten av, mens loop og verdien av @count variabelen er ikke skrevet ut.

Ellers, verdien av @count variabelen er angitt på konsollen. Her er resultatet av skriptet ovenfor:

følgende eksempelet viser bruk av en PAUSE uttalelse., Mens loop i følgende skript vil opphøre etter en utskrift av de fem første heltall:

Konklusjon

Hvis du ønsker å gjentatte ganger for å utføre en bestemt SQL script, SQL Mens loop er veien å gå. Artikkelen forklarer hvordan du bruker SQL Mens loop i Microsoft SQL Server for å utføre en rekke oppgaver som spenner fra posten innsetting å paginering.,

  • Forfatter
  • Siste Innlegg
Ben Richardson går Acuity Trening en ledende leverandør av SQL trening STORBRITANNIA. Det tilbyr et komplett utvalg av SQL opplæring fra innledende kurs gjennom til avansert administrasjon og datavarehus trening – se her for mer informasjon. Acuity har kontorer i London og Guildford, Surrey., Han blogger også noen ganger på Acuity blogg
Vis alle innlegg av Ben Richardson

Siste innlegg av Ben Richardson (se alle)
  • Strøm BI: Foss Diagrammer og Kombinert Grafikk – 19. januar 2021
  • Strøm BI: Betinget formatering og data farger i action – 14. januar 2021
  • Strøm BI: Importere data fra SQL Server og MySQL – 12. januar 2021

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *