وظيفة SQL Server LEAD ()

Wzyft Sql Server Lead



في هذه المقالة ، سنرشدك إلى أساسيات العمل مع وظيفة Lead () في SQL Server. سنغطي ما تفعله الوظيفة ، وبناء الجملة ، والأمثلة العملية لكيفية استخدامها.

وظيفة SQL Server Lead

وظيفة الرصاص في SQL Server هي وظيفة تحليلية تسمح لك بالوصول إلى البيانات من صف لاحق في نفس مجموعة النتائج دون ربط ذاتي.

تمكّنك الوظيفة من الوصول إلى صف عند إزاحة معينة تسبق الصف الحالي. على سبيل المثال ، باستخدام وظيفة الرصاص ، يمكنك العثور على الصف مباشرة بعد الصف الحالي ، والصف العاشر من الصف الحالي ، وما إلى ذلك.







تدفع هذه الوظيفة مطوري قواعد البيانات لإجراء مقارنات الصفوف بدون مهام معقدة مثل الانضمام واستخدام طرق العرض وما إلى ذلك.



تركيب الوظيفة

يصور التالي بناء جملة الدالة lead () في SQL Server:



LEAD (scalar_expression [، offset]، [افتراضي])
أكثر ([partition_by_clause] order_by_clause)

القائمة التالية هي الوسيطات المدعومة ووظائفها:





  1. scalar_expression - تشير هذه الوسيطة إلى قيمة الإرجاع بناءً على الإزاحة المحددة. يمكن أن يكون هذا تعبيرًا من أي نوع يقوم بإرجاع قيمة واحدة. ومع ذلك ، لا يمكن أن تكون قيمة scalar_expression دالة تحليلية / نافذة أخرى.
  2. offset - هذا يحدد عدد الصفوف من موضع الصف الحالي التي تم جلب القيمة إليها. بشكل افتراضي ، ستقوم الوظيفة بجلب الصف على الفور صفة للصف الحالي. وبالمثل ، لا يمكن أن تكون قيمة معامل الإزاحة دالة تحليلية أو عددًا صحيحًا سالبًا.
  3. افتراضي - تحدد هذه المعلمة القيمة الافتراضية إذا كانت قيمة الإزاحة المقدمة خارج نطاق القسم الهدف. بشكل افتراضي ، ستعيد الدالة NULL.
  4. PARTITION BY - تحدد جملة partition_by القواعد التي تقسم مجموعة النتائج إلى أقسام مختلفة. ثم يتم تطبيق الوظيفة على كل قسم ناتج.
  5. ORDER BY - يحدد هذا الترتيب المنطقي الذي يتم تطبيق الصفوف في كل قسم به.

تقوم الدالة بإرجاع نوع البيانات المحدد في scalar_expression. إذا كانت القيمة التي تم إرجاعها هي NULL ، تقوم الدالة بإرجاع NULL.

بيانات العينة

دعونا نستخدم بعض قواعد البيانات النموذجية لتوضيح أفضل طريقة لاستخدام الوظيفة الرئيسية. أولاً ، استخدم الاستعلامات كما هو موضح أدناه:



إسقاط قاعدة البيانات في حالة وجود مخزون ؛

إنشاء مخزون قاعدة البيانات ؛

جرد الاستخدام

إسقاط الجدول إذا كانت المنتجات EXISTS ؛

إنشاء منتجات الجدول (
معرف هوية int المفتاح الأساسي ليس فارغًا ،
product_name varchar (100) ،
الشركة المصنعة varchar (50) ،
كمية int ليست فارغة ،
السعر الافتراضي int 0 ،
بت in_stock
) ؛
إدراج في المنتجات (اسم المنتج ، الشركة المصنعة ، الكمية ، السعر ، in_stock)
القيم ('Apple iPad Air' ، 'Apple' ، 100 ، 569.99 ، 1) ،
('Samsung Galaxy Z Flip 4' ، 'Samsung' ، 302 ، 1569.00 ، 1) ،
(سوني بلاي ستيشن 5 ، سوني ، 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' ، 'Samsung' ، 50 ، 2999.90 ، 1) ؛

الجدول الناتج كما هو موضح:

مثال 1 - استخدام دالة SQL Server lead () على مجموعة نتائج

يستخدم المثال أدناه الدالة lead () لإرجاع سعر المنتج التالي.

تحديد
اسم المنتج،
الصانع،
كمية،
سعر،
يؤدي (السعر ،
1) فوق (
طلب بالكمية)
من
منتجات؛

الجدول الناتج:

نظرًا لعدم وجود صف من العمود الأخير ، ترجع الدالة NULL.

مثال 2 - استخدام دالة SQL Server lead () على مجموعة أقسام

يمكننا أيضًا إحضار المنتج التالي في قسم معين. على سبيل المثال ، يمكننا تقسيم البيانات أعلاه بناءً على الشركة المصنعة وتطبيق وظيفة الرصاص () في كل قسم

مثال توضيحي كما هو موضح:

تحديد
اسم المنتج،
الصانع،
كمية،
سعر،
يؤدي (السعر ،
1) فوق (
التقسيم حسب الشركة المصنعة
طلب بالكمية)
من
منتجات؛

يجب أن يقسم الاستعلام أعلاه الصفوف بناءً على الشركة المصنعة وجلب السعر التالي للقيم في كل قسم.

في هذه الحالة ، هناك ثلاثة أقسام.

استنتاج

في هذا المنشور ، فهمت اللبنات الأساسية لوظيفة lead () في SQL Server. لقد تعلمت أيضًا كيفية استخدام وظيفة الرصاص () على مجموعة النتائج والأقسام.