ایس کیو ایل سرور لیڈ () فنکشن

Ays Kyw Ayl Srwr Ly Fnkshn



اس آرٹیکل میں، ہم آپ کو ایس کیو ایل سرور میں لیڈ() فنکشن کے ساتھ کام کرنے کے بنیادی اصولوں سے آگاہ کریں گے۔ ہم اس کا احاطہ کریں گے کہ فنکشن کیا کرتا ہے، اس کا نحو، اور اس کے استعمال کی عملی مثالیں۔

ایس کیو ایل سرور لیڈ فنکشن

ایس کیو ایل سرور میں لیڈ فنکشن ایک تجزیاتی فنکشن ہے جو آپ کو سیلف جوائن کیے بغیر اسی نتیجے کے سیٹ میں آنے والی قطار سے ڈیٹا تک رسائی کی اجازت دیتا ہے۔

فنکشن آپ کو موجودہ قطار سے پہلے دیئے گئے آفسیٹ پر قطار تک رسائی حاصل کرنے کے قابل بناتا ہے۔ مثال کے طور پر، لیڈ فنکشن کا استعمال کرتے ہوئے، آپ موجودہ قطار کے فوراً بعد قطار، موجودہ قطار سے 10ویں قطار وغیرہ تلاش کر سکتے ہیں۔







یہ فنکشن ڈیٹا بیس ڈویلپرز کو بغیر کسی پیچیدہ کام کے قطار کا موازنہ کرنے کے لیے چلاتا ہے جیسے کہ شامل ہونا، ویوز کا استعمال کرنا وغیرہ۔



فنکشن نحو

درج ذیل ایس کیو ایل سرور میں لیڈ() فنکشن کے نحو کو پیش کرتا ہے۔



LEAD ( scalar_expression [ ,offset ] , [ default ] )
اوور ( [ partition_by_clause ] order_by_clause )

بعد کی فہرست تائید شدہ دلائل اور ان کی فعالیت ہے:





  1. scalar_expression - یہ دلیل بیان کردہ آفسیٹ کی بنیاد پر واپسی کی قدر کو ظاہر کرتی ہے۔ یہ کسی بھی قسم کا اظہار ہوسکتا ہے جو ایک واحد قدر واپس کرتا ہے۔ تاہم، scalar_expression کی قدر کوئی اور تجزیاتی/ونڈو فنکشن نہیں ہو سکتی۔
  2. آفسیٹ - یہ سیٹ کرتا ہے کہ موجودہ قطار کی پوزیشن سے کتنی قطاریں حاصل کی گئی ہیں۔ پہلے سے طے شدہ طور پر، فنکشن قطار کو موجودہ قطار میں فوری طور پر صفت لے آئے گا۔ اسی طرح، آفسیٹ پیرامیٹر کی قدر تجزیاتی فنکشن یا منفی عدد نہیں ہو سکتی۔
  3. ڈیفالٹ - یہ پیرامیٹر ڈیفالٹ ویلیو سیٹ کرتا ہے اگر فراہم کردہ آفسیٹ ویلیو ٹارگٹ پارٹیشن کے دائرہ کار سے باہر ہے۔ پہلے سے طے شدہ طور پر، فنکشن NULL لوٹائے گا۔
  4. PARTITION BY - partition_by شق ان اصولوں کی وضاحت کرتی ہے جو سیٹ کے نتیجے کو مختلف حصوں میں تقسیم کرتی ہے۔ فنکشن پھر ہر نتیجے میں تقسیم پر لاگو ہوتا ہے۔
  5. ORDER BY - یہ منطقی ترتیب کی وضاحت کرتا ہے جس میں ہر پارٹیشن میں قطاریں لگائی جاتی ہیں۔

فنکشن اسکیلر_ایکسپریشن میں بیان کردہ ڈیٹا کی قسم کو لوٹاتا ہے۔ اگر لوٹائی گئی قدر NULL ہے تو فنکشن NULL لوٹاتا ہے۔

نمونہ ڈیٹا

آئیے لیڈ فنکشن کو استعمال کرنے کے طریقے کو بہترین طریقے سے واضح کرنے کے لیے کچھ نمونہ ڈیٹا بیس استعمال کرتے ہیں۔ سب سے پہلے، ذیل میں دکھائے گئے سوالات کا استعمال کریں:



اگر انوینٹری موجود ہو تو ڈیٹا بیس کو چھوڑ دیں؛

ڈیٹا بیس انوینٹری بنائیں؛

انوینٹری کا استعمال کریں؛

اگر مصنوعات موجود ہیں تو ٹیبل چھوڑ دیں؛

ٹیبل پروڈکٹس بنائیں (
id int شناخت کی بنیادی کلید کالعدم نہیں،
پروڈکٹ_نام ورچار(100)،
کارخانہ دار ورچار (50)،
مقدار int کالعدم نہیں،
قیمت پہلے سے طے شدہ 0،
ان_اسٹاک بٹ
);
مصنوعات میں داخل کریں (پروڈکٹ_نام، کارخانہ دار، مقدار، قیمت، اسٹاک میں)
اقدار ('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)
('ایپل واچ سیریز 6'، 'ایپل'، 459، 379.90، 1)
('Apple AirPods Pro', 'Apple', 200, 199.99, 1)
('55' کلاس S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1)
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

نتیجہ کی میز کے طور پر دکھایا گیا ہے:

مثال 1 - ایس کیو ایل سرور لیڈ () فنکشن کا استعمال ایک نتیجہ کے سیٹ پر

نیچے دی گئی مثال اگلی پروڈکٹ کی قیمت واپس کرنے کے لیے لیڈ() فنکشن کا استعمال کرتی ہے۔

منتخب کریں
پروڈکٹ کا نام،
صنعت کار
مقدار،
قیمت،
لیڈ (قیمت،
1) ختم (
مقدار کے لحاظ سے آرڈر کریں)
سے
مصنوعات؛

نتیجہ کی میز:

چونکہ آخری کالم سے کوئی قطار نہیں ہے، فنکشن NULL لوٹاتا ہے۔

مثال 2 - پارٹیشن سیٹ پر SQL سرور لیڈ() فنکشن کا استعمال

ہم ایک دی گئی پارٹیشن میں اگلی پروڈکٹ بھی حاصل کر سکتے ہیں۔ مثال کے طور پر، ہم اوپر والے ڈیٹا کو مینوفیکچرر کی بنیاد پر تقسیم کر سکتے ہیں اور ہر پارٹیشن میں لیڈ() فنکشن کا اطلاق کر سکتے ہیں۔

مثال کے طور پر دکھایا گیا ہے:

منتخب کریں
پروڈکٹ کا نام،
صنعت کار
مقدار،
قیمت،
لیڈ (قیمت،
1) ختم (
کارخانہ دار کی طرف سے تقسیم
مقدار کے لحاظ سے آرڈر کریں)
سے
مصنوعات؛

اوپر دیے گئے استفسار کو مینوفیکچرر کی بنیاد پر قطاروں کو تقسیم کرنا چاہیے اور ہر پارٹیشن میں اقدار کے لیے اگلی قیمت حاصل کرنی چاہیے۔

اس صورت میں، تین تقسیم ہیں.

نتیجہ

اس پوسٹ میں، آپ SQL سرور میں لیڈ() فنکشن کے بلڈنگ بلاکس کو سمجھ گئے ہیں۔ آپ نے نتیجہ اور پارٹیشن سیٹ پر لیڈ() فنکشن کو استعمال کرنے کا طریقہ بھی سیکھا۔