اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

الأمر set يُستخدم لوضع قيمة في متغير، والمتغيرات في sql تبدأ بحرف @ ويجب أن يتم تعريف هذا المتغير أولاً

declare @price decimal(10, 2), @qty decimal(10, 2) -- يمكن تعريف أكثر من متغير في نفس الأمر
declare @total decimal(10, 2)
set @price = 200
set @qty = 2
set @total = @price * @qty

print(@total)

الشيفرات السابقة تقوم بتعريف 3 متغيرات price@ و qty@ و total@

بعد ذلك يتم وضع قيمة للمتغير price@ و qty@

ثم وضع قيمة للمتغير total الذي هو عبارة عن حاصل ضرب الكمية * السعر

ثم طباعة الإجمالي

ويمكن استخدام هذه المتغيرات في جمل الاستعلام

select id, name, price
from
products
where price = @price # استخراج جميع الأصناف التي سعرها يساوي هذا المتغير
order by name

 

  • 0
نشر

في الاستعلام الذي قدمته، يتم استخدام متغيرات مؤقتة لتتبع عدد الظهور لكل وظيفة محددة في الجدول "OCCUPATIONS". في هذه الحالة، تم استخدام أربعة متغيرات: @r1، @r2، @r3، و @r4.

الأمر "SET @r1 = 0" يهيئ المتغير @r1 بقيمة صفر. يمكن استخدام هذا الأمر لتهيئة المتغيرات وتأكيد أنها تبدأ من قيمة صفر قبل تنفيذ الاستعلام الرئيسي.

في الاستعلام الرئيسي، يتم زيادة قيم المتغيرات @r1، @r2، @r3، @r4 بناءً على شرط معين لكل وظيفة (Doctor، Professor، Singer، Actor). هذا يحدث في الجزء الداخلي من الاستعلام حيث يتم استخدام عبارات CASE WHEN لتحديد الوظيفة وزيادة قيمة المتغير المرتبط بها.

باختصار، يتم استخدام متغيرات @r1، @r2، @r3، @r4 لتتبع عدد الظهور لكل وظيفة، ويتم تهيئتها بقيم صفر قبل بدء تنفيذ الاستعلام.

  • 0
نشر

بيستخدم الأمر SET @r1 = 0 في استعلامات SQL لتعيين قيمة المتغير المؤقت @r1 إلى 0
شرح مفصل لجمله كامله 

  • SET: كلمة رئيسية تدل على تعيين قيمة.
  • @r1: اسم المتغير المؤقت.
  • =: مشغل تعيين.
  • 0: القيمة التي يتم تعيينها للمتغير


    بيستخدم هذا الأمر بكثره في استعلامات SQL المعقدة التي تتضمن حسابات متعددة. يمكن استخدامه لتخزين القيم الوسيطة لإعادة استخدامها لاحقًا في الاستعلام

    مثال لو فيه جدول يحتوي على أسماء الطلاب ودرجاتهم. و تريد العثور على الطلاب الذين حصلوا على أعلى 10 درجات. يمكنك استخدام استعلام SQL التالي
     
    SELECT Name
    FROM Students
    ORDER BY Score DESC
    LIMIT 10;

    سيقوم هذا الاستعلام بترتيب الطلاب حسب الدرجة تنازليًا وإرجاع أسماء أفضل 10 طلاب.

    طيب لو كنت تريد أيضًا معرفة متوسط درجة الطلاب في أعلى 10 يمكنك استخدام استعلام SQL التالي:
     

    SET @total_score = 0;
    SET @count = 0;
    
    SELECT Name, Score
    FROM Students
    ORDER BY Score DESC
    LIMIT 10;
    
    WHILE @count < 10 DO
      SET @total_score = @total_score + Score;
      SET @count = @count + 1;
    END WHILE;
    
    SET @average_score = @total_score / @count;
    
    SELECT @average_score AS AverageScore;

    في هذا المثال، يتم استخدام المتغيرين المؤقتين @total_score و @count لتخزين القيم الوسيطة التي يتم استخدامها لاحقًا لحساب متوسط الدرجة

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...