الانتقال إلى المحتوى الرئيسي
تتيح لك عبارة WHERE تصفية البيانات القادمة من عبارة FROM في SELECT. إذا وُجدت عبارة WHERE، فيجب أن تليها تعبير من النوع UInt8. وتُستبعَد الصفوف التي تُقيَّم فيها هذه التعبير إلى 0 من المعالجات اللاحقة أو من النتيجة. غالبًا ما تُستخدم تعبير التي تلي عبارة WHERE مع عوامل المقارنة والعوامل المنطقية، أو مع إحدى الدوال العادية العديدة. تُقيَّم تعبير الخاصة بـ WHERE من حيث إمكانية استخدام الفهارس وpartition pruning، إذا كان table engine الخاص بـ underlying table يدعم ذلك.
PREWHEREتوجد أيضًا آلية تحسين للتصفية تُسمى PREWHERE. ‏Prewhere هو تحسين يتيح تطبيق التصفية بكفاءة أعلى. وهو مفعّل افتراضيًا حتى إذا لم تُحدَّد عبارة PREWHERE صراحةً.

التحقق من NULL

إذا كنت بحاجة إلى التحقق مما إذا كانت قيمة هي NULL، فاستخدم: وإلا فلن يطابق أي تعبير يحتوي على NULL أي شرط مطلقًا.

تصفية البيانات باستخدام العوامل المنطقية

يمكنك استخدام الدوال المنطقية التالية مع عبارة WHERE لدمج عدة شروط:

استخدام أعمدة UInt8 كشرط

في ClickHouse، يمكن استخدام أعمدة UInt8 مباشرةً كشروط منطقية، بحيث تمثّل 0 القيمة false وتمثّل أي قيمة غير صفرية (وغالبًا 1) القيمة true. ويَرِد مثال على ذلك في القسم أدناه.

استخدام معاملات المقارنة

يمكن استخدام معاملات المقارنة التالية:

مطابقة الأنماط والتعبيرات الشرطية

إلى جانب معاملات المقارنة، يمكنك استخدام مطابقة الأنماط والتعبيرات الشرطية في عبارة WHERE. راجع “مطابقة الأنماط والتعبيرات الشرطية” للاطلاع على أمثلة الاستخدام.

تعبير يتضمن قيماً حرفية أو أعمدة أو استعلامات فرعية

يمكن أن يتضمن التعبير الذي يلي عبارة WHERE أيضاً قيماً حرفية، أو أعمدة، أو استعلامات فرعية، وهي عبارات SELECT متداخلة تُرجِع قيماً تُستخدم في الشروط. يمكنك المزج بين القيم الحرفية والأعمدة والاستعلامات الفرعية في الشروط المعقدة:

أمثلة

التحقق من NULL

الاستعلامات التي تتضمن قيماً من نوع NULL:

تصفية البيانات باستخدام العوامل المنطقية

بالنظر إلى الجدول والبيانات التاليين:
1. AND - يجب أن يكون كلا الشرطين true:
2. OR - يجب أن يتحقق شرط واحد على الأقل:
3. NOT - ينفي شرطًا:
4. XOR - يجب أن يتحقق شرط واحد فقط (وليس كلاهما):
5. دمج عدة عوامل:
6. استخدام صيغة الدوال:
تكون صيغة الكلمات المفتاحية في SQL (AND, OR, NOT, XOR) أوضح للقراءة عمومًا، لكن صيغة الدوال قد تكون مفيدة في التعبيرات المعقدة أو عند إنشاء استعلامات ديناميكية.

استخدام أعمدة UInt8 كشرط

انطلاقًا من الجدول الوارد في مثال سابق، يمكنك استخدام اسم العمود مباشرةً كشرط:

استخدام معاملات المقارنة

تستخدم الأمثلة أدناه الجدول والبيانات من المثال أعلاه. حُذفت النتائج للإيجاز. 1. المساواة الصريحة مع true (= 1 أو = true):
2. المساواة الصريحة بـ false (= 0 أو = false):
3. عدم التساوي (!= 0 أو != false):
4. أكبر من:
5. أصغر من أو يساوي:
6. الجمع بين شروط أخرى:
7. استخدام المعامل IN: في المثال أدناه، تمثّل (1, true) قيمة من النوع Tuple.
يمكنك أيضًا استخدام مصفوفة لتحقيق ذلك:
8. الخلط بين أساليب المقارنة:

مطابقة الأنماط والتعبيرات الشرطية

تستخدم الأمثلة أدناه الجدول والبيانات الواردين في المثال أعلاه. وحُذفت النتائج للاختصار.

أمثلة على LIKE

أمثلة على ILIKE

أمثلة على IF

أمثلة على multiIf

أمثلة على CASE

صيغة CASE البسيطة:
CASE الشرطي:
آخر تعديل في ٢٥ يونيو ٢٠٢٦