الفرق بين المراجعتين لصفحة: «SQL/while»
< SQL
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 50: | سطر 50: | ||
[https://docs.microsoft.com/en-us/sql/t-sql/language-elements/while-transact-sql توثيق WHILE في محرك SQLServer] | [https://docs.microsoft.com/en-us/sql/t-sql/language-elements/while-transact-sql توثيق WHILE في محرك SQLServer] | ||
[[تصنيف:SQL]] | [[تصنيف:SQL|{{SUBPAGENAME}}]] | ||
[[تصنيف:SQL Loops]] | [[تصنيف:SQL Loops|{{SUBPAGENAME}}]] |
مراجعة 15:41، 28 يناير 2018
تهدف حلقة 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 |
---|---|---|---|---|
نعم | لا | نعم | نعم | نعم |