SQL సర్వర్ లీడ్ ఫంక్షన్
SQL సర్వర్లోని లీడ్ ఫంక్షన్ అనేది ఒక విశ్లేషణాత్మక ఫంక్షన్, ఇది స్వీయ-చేరకుండానే అదే ఫలితం సెట్లోని తదుపరి వరుస నుండి డేటాను యాక్సెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
ప్రస్తుత అడ్డు వరుసకు ముందు ఇచ్చిన ఆఫ్సెట్లో అడ్డు వరుసను యాక్సెస్ చేయడానికి ఫంక్షన్ మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, లీడ్ ఫంక్షన్ని ఉపయోగించి, మీరు ప్రస్తుత అడ్డు వరుస తర్వాత వెంటనే అడ్డు వరుసను కనుగొనవచ్చు, ప్రస్తుత వరుస నుండి 10వ వరుస మొదలైనవి.
ఈ ఫంక్షన్ డేటాబేస్ డెవలపర్లను చేరడం, వీక్షణలను ఉపయోగించడం వంటి సంక్లిష్టమైన పనులు లేకుండా వరుస పోలికలను నిర్వహించడానికి డ్రైవ్ చేస్తుంది.
ఫంక్షన్ సింటాక్స్
కిందిది SQL సర్వర్లో లీడ్() ఫంక్షన్ యొక్క సింటాక్స్ను వర్ణిస్తుంది:
లీడ్ ( స్కేలార్_ఎక్స్ప్రెషన్ [ , ఆఫ్సెట్ ] , [ డిఫాల్ట్ ] )
పైగా ( [ partition_by_clause ] order_by_clause )
తదుపరి జాబితా మద్దతు ఉన్న వాదనలు మరియు వాటి కార్యాచరణ:
- scalar_expression - ఈ ఆర్గ్యుమెంట్ నిర్వచించిన ఆఫ్సెట్ ఆధారంగా రిటర్న్ విలువను సూచిస్తుంది. ఇది ఒకే విలువను అందించే ఏ రకమైన వ్యక్తీకరణ అయినా కావచ్చు. అయితే, స్కేలార్_ఎక్స్ప్రెషన్ విలువ మరొక విశ్లేషణ/విండో ఫంక్షన్గా ఉండకూడదు.
- ఆఫ్సెట్ - ఇది ప్రస్తుత అడ్డు వరుస స్థానం నుండి ఎన్ని అడ్డు వరుసల విలువను పొందాలో సెట్ చేస్తుంది. డిఫాల్ట్గా, ఫంక్షన్ ప్రస్తుత అడ్డు వరుసకు వెంటనే విశేషణంగా అడ్డు వరుసను పొందుతుంది. అదేవిధంగా, ఆఫ్సెట్ పరామితి యొక్క విలువ విశ్లేషణాత్మక ఫంక్షన్ లేదా ప్రతికూల పూర్ణాంకం కాకూడదు.
- డిఫాల్ట్ - అందించిన ఆఫ్సెట్ విలువ లక్ష్య విభజన పరిధిని మించి ఉంటే ఈ పరామితి డిఫాల్ట్ విలువను సెట్ చేస్తుంది. డిఫాల్ట్గా, ఫంక్షన్ NULLని అందిస్తుంది.
- విభజన ద్వారా - విభజన_ద్వారా నిబంధన ఫలితాన్ని వివిధ విభాగాలుగా విభజించే నియమాలను నిర్వచిస్తుంది. ప్రతి ఫలిత విభజనకు ఫంక్షన్ వర్తించబడుతుంది.
- ఆర్డర్ ద్వారా - ఇది ప్రతి విభజనలోని అడ్డు వరుసలు వర్తించే తార్కిక క్రమాన్ని నిర్వచిస్తుంది.
ఫంక్షన్ స్కేలార్_ఎక్స్ప్రెషన్లో నిర్వచించిన డేటా రకాన్ని అందిస్తుంది. అందించిన విలువ NULL అయితే, ఫంక్షన్ NULLని అందిస్తుంది.
నమూనా డేటా
లీడ్ ఫంక్షన్ను ఎలా ఉపయోగించాలో ఉత్తమంగా వివరించడానికి కొన్ని నమూనా డేటాబేస్లను ఉపయోగిస్తాము. ముందుగా, దిగువ చూపిన విధంగా ప్రశ్నలను ఉపయోగించండి:
ఇన్వెంటరీ ఉన్నట్లయితే డేటాబేస్ను వదలండి;
డేటాబేస్ ఇన్వెంటరీని సృష్టించండి;
జాబితాను ఉపయోగించండి;
ఉత్పత్తులు ఉన్నట్లయితే డ్రాప్ టేబుల్;
టేబుల్ ఉత్పత్తులను సృష్టించండి (
id int గుర్తింపు ప్రాథమిక కీ శూన్యం కాదు,
ఉత్పత్తి_పేరు వర్చార్(100),
తయారీదారు వర్చార్ (50),
పూర్ణాంక పరిమాణం శూన్యం కాదు,
ధర పూర్తి డిఫాల్ట్ 0,
ఇన్_స్టాక్ బిట్
);
ఉత్పత్తులలో చొప్పించు (ఉత్పత్తి_పేరు, తయారీదారు, పరిమాణం, ధర, ఇన్_స్టాక్)
విలువలు ('యాపిల్ ఐప్యాడ్ ఎయిర్', 'యాపిల్', 100, 569.99, 1),
('Samsung Galaxy Z ఫ్లిప్ 4', 'Samsung', 302, 1569.00, 1),
('సోనీ ప్లేస్టేషన్ 5', 'సోనీ', 500, 499.99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('యాపిల్ వాచ్ సిరీస్ 6', 'యాపిల్', 459, 379.90, 1),
('యాపిల్ ఎయిర్పాడ్స్ ప్రో', 'యాపిల్', 200, 199.99, 1),
('55' క్లాస్ S95B OLED 4K స్మార్ట్ TV', 'Samsung', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED కర్వ్డ్ గేమింగ్ స్క్రీన్', 'Samsung', 50, 2999.90, 1);
ఫలిత పట్టిక చూపిన విధంగా ఉంది:
ఉదాహరణ 1 – SQL సర్వర్ లీడ్() ఫంక్షన్ని రిజల్ట్ సెట్లో ఉపయోగించడం
దిగువ ఉదాహరణ తదుపరి ఉత్పత్తి ధరను తిరిగి ఇవ్వడానికి లీడ్() ఫంక్షన్ని ఉపయోగిస్తుంది.
ఎంచుకోండిఉత్పత్తి నామం,
తయారీదారు,
పరిమాణం,
ధర,
సీసం (ధర,
1) పైగా (
పరిమాణం వారీగా ఆర్డర్)
నుండి
ఉత్పత్తులు;
ఫలిత పట్టిక:
చివరి నిలువు వరుస నుండి అడ్డు వరుస లేనందున, ఫంక్షన్ NULLని అందిస్తుంది.
ఉదాహరణ 2 – విభజన సెట్పై SQL సర్వర్ లీడ్() ఫంక్షన్ని ఉపయోగించడం
మేము ఇచ్చిన విభజనలో తదుపరి ఉత్పత్తిని కూడా పొందవచ్చు. ఉదాహరణకు, మేము తయారీదారు ఆధారంగా ఎగువ డేటాను విభజించవచ్చు మరియు ప్రతి విభజనలో లీడ్() ఫంక్షన్ను వర్తింపజేయవచ్చు
చూపిన విధంగా ఉదాహరణ దృష్టాంతం:
ఎంచుకోండిఉత్పత్తి నామం,
తయారీదారు,
పరిమాణం,
ధర,
సీసం (ధర,
1) పైగా (
తయారీదారు ద్వారా విభజన
పరిమాణం వారీగా ఆర్డర్)
నుండి
ఉత్పత్తులు;
పై ప్రశ్న తయారీదారు ఆధారంగా అడ్డు వరుసలను విభజించి, ప్రతి విభజనలోని విలువలకు తదుపరి ధరను పొందాలి.
ఈ సందర్భంలో, మూడు విభజనలు ఉన్నాయి.
ముగింపు
ఈ పోస్ట్లో, మీరు SQL సర్వర్లోని లీడ్() ఫంక్షన్ యొక్క బిల్డింగ్ బ్లాక్లను అర్థం చేసుకున్నారు. ఫలితం మరియు విభజన సెట్పై లీడ్() ఫంక్షన్ను ఎలా ఉపయోగించాలో కూడా మీరు నేర్చుకున్నారు.