8.7 SQL - ANY, ALL

مشغّلات SQL: ANY و ALL

تسمح لك المشغّلات ANY و ALL بإجراء مقارنة بين قيمة واحدة في عمود ومجموعة من القيم التي يُرجعها استعلام فرعي (Subquery).



🔹 مشغّل SQL: ANY

  • يُرجع TRUE إذا تحقّق الشرط على أي قيمة واحدة على الأقل من نتائج الاستعلام الفرعي.
  • الشرط يكون صحيحًا إذا تحقق على قيمة واحدة فقط على الأقل في المجموعة.

✅ الصيغة:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (
  SELECT column_name
  FROM table_name
  WHERE condition
);
ملاحظة: operator يمكن أن يكون: =, <>, !=, >, >=, <, <=


🔹 مشغّل SQL: ALL

  • يُرجع TRUE فقط إذا كل القيم تحقق الشرط.
  • الشرط لازم يكون صحيحًا على جميع القيم المُسترجعة.

✅ الصيغة:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (
  SELECT column_name
  FROM table_name
  WHERE condition
);
ملاحظة: يمكن استخدامه مع: =, <>, !=, >, >=, <, <=


🗃 قاعدة البيانات التجريبية

جدول Products

  • ProductID, ProductName, Price, وغيرها.

جدول OrderDetails

  • OrderDetailID, ProductID, Quantity


✅ أمثلة على ANY:

1. منتجات لها طلب بكميّة = 10:

SELECT ProductName
FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10
);

2. منتجات لها طلب بكميّة > 99:

SELECT ProductName
FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99
);

3. منتجات لها طلب بكميّة > 1000 (لن يُرجع نتائج):

SELECT ProductName
FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000
);


✅ أمثلة على ALL:

1. عرض كل المنتجات (مثال عام):

SELECT ALL ProductName
FROM Products
WHERE TRUE;

2. منتجات كل طلباتها = 10 (نادراً ما ترجع نتائج):

SELECT ProductName
FROM Products
WHERE ProductID = ALL (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10
);


🧠 ملخص الفرق بين ANY و ALL:

الخاصية ANY ALL
يتحقق الشرط إذا قيمة واحدة فقط تطابق الشرط جميع القيم تطابق الشرط
النتيجة تشبه OR تشبه AND
مثال Price > ANY (...) Price > ALL (...)

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework