SQL Server LEAD() Function

Sql Server Lead Function



Sa artikulong ito, gagabayan ka namin sa mga batayan ng pagtatrabaho sa lead() function sa SQL Server. Tatalakayin natin kung ano ang ginagawa ng function, ang syntax nito, at mga praktikal na halimbawa kung paano ito gamitin.

SQL Server Lead Function

Ang lead function sa SQL Server ay isang analytic function na nagbibigay-daan sa iyong i-access ang data mula sa isang kasunod na row sa parehong set ng resulta nang walang self-join.

Binibigyang-daan ka ng function na ma-access ang isang row sa isang ibinigay na offset bago ang kasalukuyang row. Halimbawa, gamit ang lead function, mahahanap mo kaagad ang row pagkatapos ng kasalukuyang row, ang ika-10 row mula sa kasalukuyang row, atbp.







Ang function na ito ay nagtutulak sa mga developer ng database na magsagawa ng mga paghahambing ng row nang walang kumplikadong mga gawain tulad ng pagsali, paggamit ng mga view, atbp.



Syntax ng Function

Ang sumusunod ay naglalarawan ng syntax ng lead() function sa SQL Server:



LEAD ( scalar_expression [ ,offset ] , [ default ] )
OVER ( [ partition_by_clause ] order_by_clause )

Ang kasunod na listahan ay ang mga sinusuportahang argumento at ang kanilang pag-andar:





  1. scalar_expression - ang argument na ito ay tumutukoy sa return value batay sa tinukoy na offset. Ito ay maaaring isang expression ng anumang uri na nagbabalik ng isang solong halaga. Gayunpaman, ang halaga ng scalar_expression ay hindi maaaring isa pang analytic/window function.
  2. offset – itinatakda nito kung gaano karaming mga row mula sa kasalukuyang posisyon ng row ang nakuhang halaga. Bilang default, kukunin agad ng function ang row na adjective sa kasalukuyang row. Katulad nito, ang halaga ng offset na parameter ay hindi maaaring isang analytic function o isang negatibong integer.
  3. default – itinatakda ng parameter na ito ang default na halaga kung ang ibinigay na halaga ng offset ay lampas sa saklaw ng target na partition. Bilang default, ang function ay magbabalik ng NULL.
  4. PARTITION BY – ang partition_by clause ay tumutukoy sa mga patakaran na naghahati sa resulta na itinakda sa iba't ibang mga seksyon. Ang function ay pagkatapos ay inilapat sa bawat resultang partition.
  5. ORDER BY – tinutukoy nito ang lohikal na pagkakasunud-sunod kung saan inilalapat ang mga hilera sa bawat partisyon.

Ibinabalik ng function ang uri ng data na tinukoy sa scalar_expression. Kung ang halaga na ibinalik ay NULL, ang function ay nagbabalik ng NULL.

Sample na data

Gamitin natin ang ilang sample na database upang mailarawan nang pinakamahusay kung paano gamitin ang lead function. Una, gamitin ang mga query tulad ng ipinapakita sa ibaba:



DROP DATABASE KUNG MAY imbentaryo;

GUMAWA NG DATABASE na imbentaryo;

GAMITIN ang imbentaryo;

DROP TABLE KUNG MAY mga produkto;

GUMAWA NG MGA produkto ng TABLE (
id int identity primary key hindi null,
product_name varchar(100),
tagagawa varchar(50),
dami int hindi null,
presyo int default 0,
in_stock bit
);
ipasok sa mga produkto(pangalan_produkto, tagagawa, dami, presyo, nasa_stock)
mga halaga ('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' Class S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

Ang resultang talahanayan ay tulad ng ipinapakita:

Halimbawa 1 – Paggamit ng SQL Server lead() Function Over a Result Set

Ang halimbawa sa ibaba ay gumagamit ng lead() function upang ibalik ang presyo ng susunod na produkto.

pumili
pangalan ng Produkto,
tagagawa,
dami,
presyo,
tingga(presyo,
1) higit sa (
order ayon sa dami)
mula sa
mga produkto;

Nagresultang talahanayan:

Dahil walang row mula sa huling column, ang function ay nagbabalik ng NULL.

Halimbawa 2 – Paggamit ng SQL Server lead() Function Over a Partition Set

Maaari rin naming kunin ang susunod na produkto sa isang partikular na partition. Halimbawa, maaari naming hatiin ang data sa itaas batay sa tagagawa at ilapat ang lead() function sa bawat partition

Ang isang halimbawa ng paglalarawan ay tulad ng ipinapakita:

pumili
pangalan ng Produkto,
tagagawa,
dami,
presyo,
tingga(presyo,
1) higit sa (
partisyon ayon sa tagagawa
order ayon sa dami)
mula sa
mga produkto;

Dapat hatiin ng query sa itaas ang mga row batay sa manufacturer at kunin ang susunod na presyo para sa mga value sa bawat partition.

Sa kasong ito, mayroong tatlong mga partisyon.

Konklusyon

Sa post na ito, naunawaan mo ang mga bloke ng pagbuo ng lead() function sa SQL Server. Natutunan mo rin kung paano gamitin ang lead() function sa isang resulta at partition set.