حلقة 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 |
|---|---|---|---|---|
| نعم | لا | نعم | نعم | نعم |