SQL Server LEAD() funkcija

Sql Server Lead Funkcija



Šajā rakstā mēs iepazīstināsim jūs ar pamatiem darbam ar lead() funkciju SQL Server. Mēs apskatīsim funkcijas darbību, tās sintaksi un praktiskus piemērus, kā to izmantot.

SQL Server vadošā funkcija

SQL Server vadošā funkcija ir analītiska funkcija, kas ļauj piekļūt datiem no nākamās rindas tajā pašā rezultātu kopā bez pašsavienošanās.

Funkcija ļauj piekļūt rindai ar noteiktu nobīdi pirms pašreizējās rindas. Piemēram, izmantojot svina funkciju, jūs varat atrast rindu uzreiz aiz pašreizējās rindas, 10. rindu no pašreizējās rindas utt.







Šī funkcija mudina datu bāzes izstrādātājus veikt rindu salīdzināšanu bez sarežģītiem uzdevumiem, piemēram, pievienošanās, skatu izmantošana utt.



Funkciju sintakse

Tālāk ir attēlota SQL Server funkcijas lead() sintakse:



LEAD (skalāra_izteiksme [,nobīde], [noklusējums])
OVER ( [ partition_by_clause ] order_by_clause )

Nākamais saraksts ir atbalstītie argumenti un to funkcionalitāte:





  1. skalāra_izteiksme — šis arguments apzīmē atgriešanās vērtību, pamatojoties uz definēto nobīdi. Tā var būt jebkura veida izteiksme, kas atgriež vienu vērtību. Tomēr skalāra_izteiksmes vērtība nevar būt cita analītiskā/loga funkcija.
  2. nobīde — iestata, cik rindu no pašreizējās rindas pozīcijas tiek iegūta vērtība. Pēc noklusējuma funkcija nekavējoties ienesīs rindas īpašības vārdu pašreizējai rindai. Tāpat nobīdes parametra vērtība nevar būt analītiska funkcija vai negatīvs vesels skaitlis.
  3. noklusējuma — šis parametrs iestata noklusējuma vērtību, ja norādītā nobīdes vērtība ir ārpus mērķa nodalījuma darbības jomas. Pēc noklusējuma funkcija atgriezīs NULL.
  4. PARTITION BY – klauzula partition_by definē noteikumus, kas sadala rezultātu kopu dažādās sadaļās. Pēc tam funkcija tiek lietota katram iegūtajam nodalījumam.
  5. ORDER BY — tas nosaka loģisko secību, kādā tiek lietotas rindas katrā nodalījumā.

Funkcija atgriež skalāra_izteiksmē definēto datu tipu. Ja atgrieztā vērtība ir NULL, funkcija atgriež NULL.

Datu paraugi

Ļaujiet mums izmantot dažas datu bāzes, lai vislabāk ilustrētu, kā izmantot vadošo funkciju. Vispirms izmantojiet vaicājumus, kā parādīts zemāk:



ATMET DATU BĀZI, JA PASTĀV inventāra;

IZVEIDOT DATU BĀZES inventāru;

IZMANTO inventāru;

NOMET TABULU, JA IR produkti;

CREATE TABLE produkti (
id int identitātes primārā atslēga nav nulles,
produkta_nosaukums varchar(100),
ražotājs varchar(50),
daudzums nav nulles,
cena pēc noklusējuma 0,
in_stock bit
);
ievietot produktos (produkta_nosaukums, ražotājs, daudzums, cena, noliktavā)
vērtības ('Apple iPad Air', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
(“Sony Playstation 5”, “Sony”, 500, 499.99, 1),
(“Samsung Galaxy Watch-5 Pro”, “Samsung”, 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1),
(“Apple AirPods Pro”, “Apple”, 200, 199.99, 1),
('55' klases S95B OLED 4K viedais televizors', 'Samsung', 900, 1999.90, 1),
(“Odyssey Ark Quantum Mini-LED izliekts spēļu ekrāns”, “Samsung”, 50, 2999.90, 1);

Rezultātā iegūtā tabula ir šāda:

1. piemērs — SQL Servera svina() funkcijas izmantošana rezultātu kopai

Tālāk sniegtajā piemērā tiek izmantota funkcija lead(), lai atgrieztu nākamā produkta cenu.

izvēlieties
produkta nosaukums,
ražotājs,
daudzums,
cena,
svins (cena,
1) virs (
pasūtīt pēc daudzuma)
no
produkti;

Rezultātu tabula:

Tā kā pēdējā kolonnā nav rindas, funkcija atgriež NULL.

2. piemērs — SQL Servera svina() funkcijas izmantošana partition komplektā

Mēs varam arī ienest nākamo produktu noteiktā nodalījumā. Piemēram, mēs varam sadalīt iepriekš minētos datus, pamatojoties uz ražotāju, un katrā nodalījumā lietot funkciju lead().

Ilustrācijas piemērs ir šāds:

atlasiet
produkta nosaukums,
ražotājs,
daudzums,
cena,
svins (cena,
1) virs (
nodalījums pēc ražotāja
pasūtīt pēc daudzuma)
no
produkti;

Iepriekš minētajam vaicājumam ir jāsadala rindas, pamatojoties uz ražotāju, un jāiegūst nākamā katra nodalījuma vērtību cena.

Šajā gadījumā ir trīs nodalījumi.

Secinājums

Šajā ziņojumā jūs sapratāt SQL Server funkcijas lead() pamatelementus. Jūs arī uzzinājāt, kā izmantot lead() funkciju rezultātu un nodalījumu kopai.