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

Ays Kyw Ayl Ly Fnkshn



ایس کیو ایل لیڈ() فنکشن آپ کو کسی مخصوص آفسیٹ پر موجودہ قطار سے اگلی قطار تک رسائی کی اجازت دیتا ہے۔ مختصر میں، لیڈ() فنکشن آپ کو موجودہ قطار سے اگلی قطار تک رسائی کی اجازت دیتا ہے۔ آفسیٹ ویلیو بتا کر، آپ موجودہ والی سے اگلی 1، 2، 3 وغیرہ، قطاروں تک رسائی حاصل کر سکتے ہیں۔

یہ lag() فنکشن کے برعکس ہے جو آپ کو پچھلی قطاروں تک رسائی کی اجازت دیتا ہے۔







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

فنکشن نحو مندرجہ ذیل ہے:



LEAD(value_expression, offset [, default])
اوور (
[PARTITION BY partition_expression]
ترتیب_اظہار کے لحاظ سے ترتیب دیں [ASC | DESC]
);

مندرجہ ذیل تائید شدہ دلائل ہیں:



  1. قدر_اظہار - یہ پچھلی قطار کی واپسی کی قیمت کی وضاحت کرتا ہے۔ اظہار کا ایک واحد قدر سے جائزہ لینا چاہیے۔
  2. آفسیٹ - یہ بتاتا ہے کہ رسائی کے لیے موجودہ قطار سے کتنی قطاریں آگے ہیں۔
  3. پہلے سے طے شدہ اگر آفسیٹ پارٹیشن کے دائرہ کار سے باہر ہے تو یہ ڈیفالٹ ویلیو سیٹ کرتا ہے۔ پہلے سے طے شدہ طور پر، قدر NULL پر سیٹ ہوتی ہے۔
  4. کی طرف سے تقسیم - یہ بتاتا ہے کہ ڈیٹا کو کیسے تقسیم کیا جائے۔
  5. بذریعہ آرڈر کریں۔ - یہ ہر پارٹیشن میں قطاروں کے لیے آرڈر فارمیٹ سیٹ کرتا ہے۔

نمونہ ڈیٹا سیٹ اپ

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





ٹیبل پروڈکٹس بنائیں (
پروڈکٹ_آئی ڈی بنیادی کلیدی آٹو_INCREMENT،
پروڈکٹ_نام VARCHAR(255)،
زمرہ VARCHAR(255)،
قیمت اعشاریہ (10، 2)،
مقدار INT،
میعاد ختم ہونے کی_تاریخ DATE،
بارکوڈ بڑا
);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('شیف ہیٹ 25 سینٹی میٹر'،
'بیکری'،
24.67،
57،
'09-09-2023'،
2854509564204);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('بٹیر کے انڈے - ڈبے میں بند'،
'پینٹری'،
17.99،
67،
'29-09-2023'،
1708039594250);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('کافی - انڈے نوگ کیپوچینو'،
'بیکری'،
92.53،
10،
'22-09-2023'،
8704051853058);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('ناشپاتی - کانٹے دار'،
'بیکری'،
65.29،
48،
'23-08-2023'،
5174927442238);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('پاستا - فرشتہ ہیئر'،
'پینٹری'،
48.38،
59،
'05-08-2023'،
8008123704782);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('شراب - پراسیکو والڈوبیڈین'،
'پیداوار'،
44.18،

'13-03-2023'،
6470981735653);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('پیسٹری - فرانسیسی منی مختلف'،
'پینٹری'،
36.73،
52،
'29-05-2023'،
5963886298051);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('اورنج - ڈبہ بند، مینڈارن'،
'پیداوار'،
65.0،

'2023-04-20'،
6131761721332);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)
اقدار ('سور کا گوشت - کندھے'،
'پیداوار'،
55.55،
73،
'01-05-2023'،
9343592107125);

داخل کریں
میں
مصنوعات (پروڈکٹ_نام،
قسم،
قیمت،
مقدار،
میعاد ختم ہونے کی_تاریخ،
بارکوڈ)

اقدار ('Dc Hikiage Hira Huba'،
'پیداوار'،
56.29،
53،
'2023-04-14'،
3354910667072);

مثال 1:

اس صورت میں، ہمارے پاس 'مصنوعات' ٹیبل تک رسائی ہے جس میں پروڈکٹ کی معلومات ہوتی ہیں۔ فرض کریں کہ ہم موجودہ قطار سے اگلا بار کوڈ حاصل کرنا چاہتے ہیں۔

ہم لیڈ() فنکشن کو اس طرح استعمال کر سکتے ہیں:



فرض کریں کہ ہمارے پاس ایک ٹیبل ہے جس میں ملازم کی معلومات درج ذیل ہیں:

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

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

نتیجے کی پیداوار مندرجہ ذیل ہے:

مثال 2:

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

دائرہ سے باہر کسی بھی رسائی کے لیے ڈیفالٹ ویلیو سیٹ کرنے کے لیے، ہم درج ذیل کام کر سکتے ہیں:

منتخب کریں
پروڈکٹ کا نام،
قیمت،
لیڈ (بار کوڈ، 1، 'N/A') اوور (زمرہ کے لحاظ سے تقسیم
کی طرف سے حکم
قیمت asc) بطور next_item
سے
مصنوعات p؛

ہم ڈیفالٹ ویلیو کو 'N/A' پر سیٹ کرتے ہیں۔ اسے کسی بھی حد سے باہر والی قدر کو تبدیل کرنا چاہئے جیسا کہ درج ذیل آؤٹ پٹ میں دکھایا گیا ہے:

نوٹ : آفسیٹ کو 1 پر سیٹ کرنا کسی قدر کی وضاحت نہ کرنے کے مترادف ہے۔

مثال 3:

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

ایک مثال کے سوال کو درج ذیل میں بیان کیا گیا ہے:

منتخب کریں
پروڈکٹ کا نام،
قیمت،
لیڈ (بار کوڈ، 2، 'N/A') اوور (زمرہ کے لحاظ سے تقسیم
کی طرف سے حکم
قیمت asc) بطور next_item
سے
مصنوعات p؛

یہ استفسار ہر پارٹیشن میں اگلی دو قطاریں لوٹاتا ہے جیسا کہ درج ذیل میں دکھایا گیا ہے۔

وہاں آپ کے پاس ہے!

نتیجہ

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