الانتقال إلى المحتوى الرئيسي

قواعد المقارنة

تعيد دوال المقارنة أدناه القيمة 0 أو 1 من النوع UInt8. ولا يمكن مقارنة إلا القيم التي تقع ضمن المجموعة نفسها (مثل UInt16 وUInt64) وليس بين مجموعات مختلفة (مثل UInt16 وDateTime). كما يمكن مقارنة الأرقام والسلاسل النصية، وكذلك السلاسل النصية بالتواريخ، والتواريخ بالأوقات. أما بالنسبة إلى tuples وarrays، فتكون المقارنة معجمية، أي تُجرى المقارنة بين كل عنصر مقابل في الـ tuple/array على الجهة اليسرى ونظيره على الجهة اليمنى. يمكن مقارنة الأنواع التالية:
  • الأرقام والقيم العشرية
  • السلاسل النصية والسلاسل النصية ثابتة الطول
  • التواريخ
  • التواريخ مع الأوقات
  • tuples (مقارنة معجمية)
  • arrays (مقارنة معجمية)
تُقارَن السلاسل النصية بايتًا ببايت. وقد يؤدي ذلك إلى نتائج غير متوقعة إذا كانت إحدى السلاسل النصية تحتوي على أحرف متعددة البايت بترميز UTF-8. وتُعَدّ السلسلة النصية S1 التي تكون السلسلة النصية S2 بادئة لها أطول من S2.

equals

أُضيف في: v1.1.0 يقارن بين قيمتين للتحقق من تساويهما. بناء الجملة
equals(a, b)
        -- a = b
        -- a == b
الوسيطات
  • a — القيمة الأولى.* - b — القيمة الثانية.*
القيمة المُعادة تُرجع 1 إذا كانت a تساوي b، وإلا فتُرجع 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT 1 = 1, 1 = 2;
Response
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

globalIn

أُضيف في: v1.1.0 مماثل لـ in، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. الصيغة
globalIn(x, set)
المعاملات
  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُعيد 1 إذا كانت x موجودة في المجموعة، وإلا فتُعيد 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalInIgnoreSet

أُضيف في: v1.1.0 مماثل لـ in، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة. البنية
globalIn(x, set)
الوسيطات
  • x — القيمة المراد التحقّق منها. - set — مجموعة القيم.
القيمة المُعادة تُعيد 1 إذا كانت x ضمن المجموعة، وإلا فتُعيد 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalNotIn

أُضيفت في: v1.1.0 مطابقة لـ notIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. الصيغة
globalNotIn(x, set)
المعاملات
  • x — القيمة المطلوب التحقّق منها. - set — مجموعة القيم.
القيمة المُعادة يعيد 1 إذا لم تكن x ضمن المجموعة، و0 بخلاف ذلك. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotInIgnoreSet

قُدِّم في: v1.1.0 مماثل لـ notIn، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. هذا هو متغير IgnoreSet المستخدم في تحليل النوع دون إنشاء المجموعة. البنية
globalNotIn(x, set)
المعاملات
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُرجِع 1 إذا لم يكن x ضمن المجموعة، وإلا فتُرجِع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotNullIn

قُدِّمت في: v1.1.0 مماثلة لـ notNullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. الصيغة
globalNotNullIn(x, set)
الوسائط
  • x — القيمة المطلوب التحقّق منها. - set — مجموعة القيم.
القيمة المُعادة تعيد 1 إذا لم تكن x ضمن المجموعة، وإلا فتعيد 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNotNullInIgnoreSet

أُضيفت في: v1.1.0 مماثلة لـ notNullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. وهذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة. البنية
globalNotNullIn(x, set)
الوسائط
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُرجِع 1 إذا لم تكن x ضمن المجموعة، و0 بخلاف ذلك. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNullIn

مُتاحة منذ: v1.1.0 مماثلة لـ nullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. البنية
globalNullIn(x, set)
الوسيطات
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُرجِع 1 إذا كانت x ضمن المجموعة، وإلا فتُرجِع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

globalNullInIgnoreSet

قُدِّم في: v1.1.0 مماثل لـ nullIn، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. هذا هو متغير IgnoreSet المستخدم في تحليل النوع من دون إنشاء المجموعة. البنية
globalNullIn(x, set)
الوسائط
  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُعيد 1 إذا كانت x موجودة في المجموعة، وإلا فتُعيد 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

greater

أُضيفت في: v1.1.0 يقارن بين قيمتين لتحديد ما إذا كانت إحداهما أكبر من الأخرى. البنية
greater(a, b)
    -- a > b
الوسيطات
  • a — القيمة الأولى.* - b — القيمة الثانية.*
القيمة المُعادة تُرجع 1 إذا كانت a أكبر من b، وإلا فتُرجع 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT 2 > 1, 1 > 2;
Response
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

قُدِّمت في: v1.1.0 تقارن بين قيمتين للتحقق مما إذا كانت إحداهما أكبر من الأخرى أو تساويها. البنية
greaterOrEquals(a, b)
    -- a >= b
الوسائط
  • a — القيمة الأولى.* - b — القيمة الثانية.*
القيمة المُعادة يعيد 1 إذا كانت a أكبر من أو تساوي b، وإلا فيُعيد 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
Response
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

in

أُضيف في: v1.1.0 يتحقق مما إذا كان المُعامل الأيسر عنصرًا في مجموعة المُعامل الأيمن. ويُرجع 1 إذا كان كذلك، و0 بخلاف ذلك. تُتخطّى قيم NULL في المُعامل الأيسر (وتُعامل كما لو أنها ليست ضمن المجموعة). الصياغة
in(x, set)
المعاملات
  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.
القيمة المُعادة يُرجع 1 إذا كانت x موجودة في المجموعة، وإلا فيُرجع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 1 IN (1, 2, 3)
Response
1

inIgnoreSet

أُضيفت في: v1.1.0 يفحص ما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. يُرجع 1 إذا كان كذلك، و0 بخلاف ذلك. تُتجاهل قيم NULL في المعامل الأيسر (وتُعامل على أنها غير موجودة في المجموعة). هذا هو متغير IgnoreSet المستخدم في تحليل النوع من دون إنشاء المجموعة. الصيغة
in(x, set)
الوسائط
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُرجع 1 إذا كانت قيمة x ضمن المجموعة، وإلا فتُرجع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 1 IN (1, 2, 3)
Response
1

isDistinctFrom

أُضيفت في: v25.11.0 تُجري مقارنة “عدم المساواة” تراعي NULL بين قيمتين. تعيد true إذا كانت القيمتان مختلفتين (غير متساويتين)، بما في ذلك عندما تكون إحدى القيم NULL والأخرى ليست كذلك. تعيد false إذا كانت القيمتان متساويتين، أو إذا كانت كلتاهما NULL. البنية
isDistinctFrom(x, y)
الوسيطات
  • x — القيمة الأولى للمقارنة. يمكن أن تكون من أي نوع بيانات في ClickHouse. Any
  • y — القيمة الثانية للمقارنة. يمكن أن تكون من أي نوع بيانات في ClickHouse. Any
القيمة المُعادة تُرجِع true إذا كانت القيمتان مختلفتين، مع اعتبار قيم NULL قابلة للمقارنة:
  • تُرجِع true إذا كان x != y.
    • تُرجِع true إذا كانت واحدة فقط من x أو y تساوي NULL.
    • تُرجِع false إذا كان x = y، أو إذا كانت كلٌّ من x وy تساوي NULL. Bool
أمثلة الاستخدام الأساسي مع الأرقام وقيم NULL
Query
SELECT
    isDistinctFrom(1, 2) AS result_1,
    isDistinctFrom(1, 1) AS result_2,
    isDistinctFrom(NULL, 1) AS result_3,
    isDistinctFrom(NULL, NULL) AS result_4
Response
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

isNotDistinctFrom

قُدِّمت في: v23.8.0 تُجري مقارنة “مساواة” تراعي NULL بين قيمتين. تُرجع true إذا كانت القيمتان متساويتين، بما في ذلك عندما تكونان كلتاهما NULL. تُرجع false إذا كانت القيمتان مختلفتين، أو إذا كانت واحدة منهما فقط NULL. الصيغة
isNotDistinctFrom(x, y)
المعاملات
  • x — القيمة الأولى للمقارنة. يمكن أن تكون من أي نوع بيانات في ClickHouse. Any
  • y — القيمة الثانية للمقارنة. يمكن أن تكون من أي نوع بيانات في ClickHouse. Any
القيمة المُعادة تُرجع true إذا كانت القيمتان متساويتين، مع اعتبار قيم NULL قابلة للمقارنة:
  • تُرجع true إذا كان x = y.
    • تُرجع true إذا كانت كلٌّ من x و y تساوي NULL.
    • تُرجع false إذا كان x != y، أو إذا كانت إحدى القيمتين x أو y فقط تساوي NULL. Bool
أمثلة الاستخدام الأساسي مع الأرقام وقيم NULL
Query
SELECT
    isNotDistinctFrom(1, 1) AS result_1,
    isNotDistinctFrom(1, 2) AS result_2,
    isNotDistinctFrom(NULL, NULL) AS result_3,
    isNotDistinctFrom(NULL, 1) AS result_4
Response
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

less

أُضيف في: v1.1.0 يقارن بين قيمتين لتحديد ما إذا كانت إحداهما أصغر من الأخرى. الصياغة
less(a, b)
    -- a < b
المعاملات
  • a — القيمة الأولى.* - b — القيمة الثانية.*
القيمة المُعادة تعيد 1 إذا كانت a أقل من b، وإلا فتعيد 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT 1 < 2, 2 < 1;
Response
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

تم تقديمها في: v1.1.0 يقارن بين قيمتين للتحقق من علاقة «أصغر من أو يساوي». بناء الجملة
lessOrEquals(a, b)
-- a <= b
الوسائط
  • a — القيمة الأولى.* - b — القيمة الثانية.*
القيمة المُعادة تعيد 1 إذا كانت a أقل من أو تساوي b، وإلا فتعيد 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
Response
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

أُضيف في: v1.1.0 يقارن بين قيمتين للتحقق من عدم التساوي. الصياغة
notEquals(a, b)
    -- a != b
    -- a <> b
المعاملات
  • a — القيمة الأولى.* - b — القيمة الثانية.*
القيمة المُعادة تُرجع 1 إذا كانت a لا تساوي b، وإلا فتُرجع 0. UInt8 أمثلة مثال للاستخدام
Query
SELECT 1 != 2, 1 != 1;
Response
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘

notIn

أُضيفت في: v1.1.0 يتحقق مما إذا كان المعامل الأيسر ليس عنصرًا في مجموعة المعامل الأيمن. وتُرجع 1 إذا لم يكن ضمن المجموعة، و0 خلاف ذلك. ويتم تجاهل قيم NULL في المعامل الأيسر. البنية
notIn(x, set)
الوسائط
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة يعيد 1 إذا لم تكن x ضمن المجموعة، وإلا يعيد 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notInIgnoreSet

قُدِّم في: v1.1.0 يتحقق مما إذا كان المعامل الأيسر ليس ضمن مجموعة المعامل الأيمن. ويُرجع 1 إذا لم يكن ضمن المجموعة، و0 خلاف ذلك. تُتجاوز قيم NULL في المعامل الأيسر. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة. البنية
notIn(x, set)
الوسيطات
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُعيد 1 إذا لم تكن x ضمن المجموعة، وإلا تُعيد 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notNullIn

أُضيفت في: v1.1.0 يتحقق مما إذا كان المعامل الأيسر ليس عنصرًا في مجموعة المعامل الأيمن. وعلى عكس notIn، لا يتم تجاهل قيم NULL: تُقارَن NULL بعناصر المجموعة، وتكون نتيجة NULL = NULL هي true. الصيغة
notNullIn(x, set)
الوسيطات
  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.
القيمة المُعادة يُرجع 1 إذا لم تكن x ضمن المجموعة، وإلا فيُرجع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

notNullInIgnoreSet

قُدِّمت في: v1.1.0 يتحقق مما إذا كان المعامل الأيسر ليس عضوًا في مجموعة المعامل الأيمن. وعلى خلاف notIn، لا يتم تجاهل قيم NULL، بل تُقارَن NULL بعناصر المجموعة، وتُقيَّم NULL = NULL إلى true. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة. البنية
notNullIn(x, set)
الوسيطات
  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُرجع 1 إذا لم تكن x ضمن المجموعة، وإلا فتُرجع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

nullIn

أُضيفت في: v1.1.0 يتحقق مما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. وعلى خلاف in، لا تُتجاهل قيم NULL: إذ تُقارَن NULL بعناصر المجموعة، ويُقيَّم NULL = NULL على أنه true. البنية
nullIn(x, set)
الوسائط
  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.
القيمة المعادة تُرجع 1 إذا كانت x ضمن المجموعة، وإلا فتُرجع 0. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

nullInIgnoreSet

أُضيف في: v1.1.0 يتحقق مما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. بخلاف in، لا يتم تجاهل قيم NULL: تُقارَن NULL بعناصر المجموعة، وتُقيَّم NULL = NULL إلى true. هذا هو متغير IgnoreSet المستخدم في تحليل النوع دون إنشاء المجموعة. الصياغة
nullIn(x, set)
الوسائط
  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.
القيمة المُعادة تُعيد 1 إذا كانت x ضمن المجموعة، وتُعيد 0 بخلاف ذلك. UInt8 أمثلة الاستخدام الأساسي
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1
آخر تعديل في ٢٥ يونيو ٢٠٢٦