حلقة WHILE في SQL

من موسوعة حسوب
< SQL

تهدف حلقة WHILE إلى تكرار عددٍ من التعليمات باستمرار تحقق الشرط ضمنها، إذ يُتأكَّد من تحقّق الشرط قبل البدء بتنفيذ التعليمات التي تحتويه، وتكون البنية العامّة لها:

[ <<label>> ]
WHILE boolean-expression LOOP
  statements
END LOOP [ label ];

إذ يمكن تحديد تسمية label لها وتوضع التعليمات statements ضمنها بعد الكلمة المفتاحية LOOP. أما في محرك MySQL فتصبح بالشكل الآتي:

[begin_label:] WHILE search_condition DO
  statement_list
END WHILE [end_label];

وفي محرك SQL Server تكون بالشكل:

WHILE boolean_expression   
  { sql_statement | statement_block}

إذ تبتدئ كتلة التعليمات statement_block بالكلمة المفتاحية BEGIN وتنتهي بالكلمة المفتاحية END.

مثال

في حلقة WHILE الآتية تستمر زيادة الفاتورة bill بقيمة 500 وإنقاص نفس القيمة من البضائع goods إلى أن تبلغ قيمة bill القيمة 2000 أو أكثر أو أن تصبح قيمة goods القيمة صفر أو أقل، وحينها تنتهي الحلقة.

WHILE bill < 2000 AND goods > 0 LOOP
  bill = bill + 500;
  goods = goods - 500;
END LOOP;

التوافقية

SQLServer SQLite Oracle PostgreSQL MySQL
نعم لا نعم نعم نعم

مصادر

توثيق WHILE في محرك MySQL

توثيق WHILE في محرك PostgreSQL

توثيق WHILE في محرك Oracle

توثيق WHILE في محرك SQLServer