Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

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

تعيد دوال المقارنة أدناه القيمة 0 أو 1 من النوع UInt8. ولا يمكن مقارنة إلا القيم التي تقع ضمن المجموعة نفسها (مثل UInt16 وUInt64) وليس بين مجموعات مختلفة (مثل UInt16 وDateTime). كما يمكن مقارنة الأرقام والسلاسل النصية، وكذلك السلاسل النصية بالتواريخ، والتواريخ بالأوقات. أما بالنسبة إلى tuples وarrays، فتكون المقارنة معجمية، أي تُجرى المقارنة بين كل عنصر مقابل في الـ tuple/array على الجهة اليسرى ونظيره على الجهة اليمنى.

يمكن مقارنة الأنواع التالية:

  • الأرقام والقيم العشرية
  • السلاسل النصية والسلاسل النصية ثابتة الطول
  • التواريخ
  • التواريخ مع الأوقات
  • tuples (مقارنة معجمية)
  • arrays (مقارنة معجمية)

equals

أُضيف في: v1.1.0

يقارن بين قيمتين للتحقق من تساويهما.

بناء الجملة

equals(a, b)
        -- a = b
        -- a == b

الوسيطات

  • a — القيمة الأولى.* - b — القيمة الثانية.*

القيمة المُعادة

تُرجع 1 إذا كانت a تساوي b، وإلا فتُرجع 0 UInt8

أمثلة

مثال على الاستخدام

SELECT 1 = 1, 1 = 2;
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

globalIn

أُضيف في: v1.1.0

مماثل لـ in، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.

الصيغة

globalIn(x, set)

المعاملات

  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُعيد 1 إذا كانت x موجودة في المجموعة، وإلا فتُعيد 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT 1 IN (1, 2, 3)
1

globalInIgnoreSet

أُضيف في: v1.1.0

مماثل لـ in، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.

البنية

globalIn(x, set)

الوسيطات

  • x — القيمة المراد التحقّق منها. - set — مجموعة القيم.

القيمة المُعادة

تُعيد 1 إذا كانت x ضمن المجموعة، وإلا فتُعيد 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT 1 IN (1, 2, 3)
1

globalNotIn

أُضيفت في: v1.1.0

مطابقة لـ notIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.

الصيغة

globalNotIn(x, set)

المعاملات

  • x — القيمة المطلوب التحقّق منها. - set — مجموعة القيم.

القيمة المُعادة

يعيد 1 إذا لم تكن x ضمن المجموعة، و0 بخلاف ذلك. UInt8

أمثلة

الاستخدام الأساسي

SELECT 4 NOT IN (1, 2, 3)
1

globalNotInIgnoreSet

قُدِّم في: v1.1.0

مماثل لـ notIn، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. هذا هو متغير IgnoreSet المستخدم في تحليل النوع دون إنشاء المجموعة.

البنية

globalNotIn(x, set)

المعاملات

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُرجِع 1 إذا لم يكن x ضمن المجموعة، وإلا فتُرجِع 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT 4 NOT IN (1, 2, 3)
1

globalNotNullIn

أُضيف في: v1.1.0

مماثلة لـ notNullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.

الصيغة

globalNotNullIn(x, set)

وسيطات

  • x — القيمة المطلوب التحقّق منها. - set — مجموعة القيم.

القيمة المُعادة

تعيد 1 إذا لم تكن x ضمن المجموعة، وإلا فتعيد 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT notNullIn(NULL, tuple(1, NULL))
1

globalNotNullInIgnoreSet

أُضيفت في: v1.1.0

مماثلة لـ notNullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. وهذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.

الصيغة

globalNotNullIn(x, set)

وسيطات

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُرجِع 1 إذا لم تكن x ضمن المجموعة، و0 بخلاف ذلك. UInt8

أمثلة

الاستخدام الأساسي

SELECT notNullIn(NULL, tuple(1, NULL))
1

globalNullIn

أُضيف في: v1.1.0

مماثلة لـ nullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.

الصيغة

globalNullIn(x, set)

الوسيطات

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُرجِع 1 إذا كانت x ضمن المجموعة، وإلا فتُرجِع 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT nullIn(NULL, tuple(1, NULL))
0

globalNullInIgnoreSet

أُضيف في: v1.1.0

مماثل لـ nullIn، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة. هذا هو متغير IgnoreSet المستخدم في تحليل النوع من دون إنشاء المجموعة.

الصيغة

globalNullIn(x, set)

وسيطات

  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُعيد 1 إذا كانت x موجودة في المجموعة، وإلا فتُعيد 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT nullIn(NULL, tuple(1, NULL))
0

greater

أُضيفت في: v1.1.0

يقارن بين قيمتين لتحديد ما إذا كانت إحداهما أكبر من الأخرى.

البنية

greater(a, b)
    -- a > b

الوسيطات

  • a — القيمة الأولى.* - b — القيمة الثانية.*

القيمة المُعادة

تُرجع 1 إذا كانت a أكبر من b، وإلا فتُرجع 0 UInt8

أمثلة

مثال على الاستخدام

SELECT 2 > 1, 1 > 2;
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

قُدِّمت في: v1.1.0

تقارن بين قيمتين للتحقق مما إذا كانت إحداهما أكبر من الأخرى أو تساويها.

البنية

greaterOrEquals(a, b)
    -- a >= b

الوسائط

  • a — القيمة الأولى.* - b — القيمة الثانية.*

القيمة المُعادة

يعيد 1 إذا كانت a أكبر من أو تساوي b، وإلا فيُعيد 0 UInt8

أمثلة

مثال على الاستخدام

SELECT 2 >= 1, 2 >= 2, 1 >= 2;
┌─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

أمثلة

الاستخدام الأساسي

SELECT 1 IN (1, 2, 3)
1

inIgnoreSet

أُضيفت في: v1.1.0

يفحص ما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. يُرجع 1 إذا كان كذلك، و0 بخلاف ذلك. تُتجاهل قيم NULL في المعامل الأيسر (وتُعامل على أنها غير موجودة في المجموعة). هذا هو متغير IgnoreSet المستخدم في تحليل النوع من دون إنشاء المجموعة.

الصيغة

in(x, set)

الوسائط

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُرجع 1 إذا كانت قيمة x ضمن المجموعة، وإلا فتُرجع 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT 1 IN (1, 2, 3)
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

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
┌─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

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
┌─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

أمثلة

مثال على الاستخدام

SELECT 1 < 2, 2 < 1;
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

تم تقديمها في: v1.1.0

يقارن بين قيمتين للتحقق من علاقة «أصغر من أو يساوي».

بناء الجملة

lessOrEquals(a, b)
-- a <= b

الوسائط

  • a — القيمة الأولى.* - b — القيمة الثانية.*

القيمة المُعادة

تعيد 1 إذا كانت a أقل من أو تساوي b، وإلا فتعيد 0 UInt8

أمثلة

مثال على الاستخدام

SELECT 1 <= 2, 2 <= 2, 3 <= 2;
┌─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

أمثلة

مثال للاستخدام

SELECT 1 != 2, 1 != 1;
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘

notIn

أُضيفت في: v1.1.0

يتحقق مما إذا كان المعامل الأيسر ليس عنصرًا في مجموعة المعامل الأيمن. وتُرجع 1 إذا لم يكن ضمن المجموعة، و0 خلاف ذلك. ويتم تجاهل قيم NULL في المعامل الأيسر.

البنية

notIn(x, set)

الوسائط

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

يعيد 1 إذا لم تكن x ضمن المجموعة، وإلا يعيد 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT 4 NOT IN (1, 2, 3)
1

notInIgnoreSet

قُدِّم في: v1.1.0

يتحقق مما إذا كان المعامل الأيسر ليس ضمن مجموعة المعامل الأيمن. ويُرجع 1 إذا لم يكن ضمن المجموعة، و0 خلاف ذلك. تُتجاوز قيم NULL في المعامل الأيسر. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.

البنية

notIn(x, set)

الوسيطات

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُعيد 1 إذا لم تكن x ضمن المجموعة، وإلا تُعيد 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT 4 NOT IN (1, 2, 3)
1

notNullIn

أُضيفت في: v1.1.0

يتحقق مما إذا كان المعامل الأيسر ليس عنصرًا في مجموعة المعامل الأيمن. وعلى عكس notIn، لا يتم تجاهل قيم NULL: تُقارَن NULL بعناصر المجموعة، وتكون نتيجة NULL = NULL هي true.

الصيغة

notNullIn(x, set)

الوسيطات

  • x — القيمة المراد التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

يُرجع 1 إذا لم تكن x ضمن المجموعة، وإلا فيُرجع 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT notNullIn(NULL, tuple(1, NULL))
1

notNullInIgnoreSet

أُضيف في: v1.1.0

يتحقق مما إذا كان المعامل الأيسر ليس عضوًا في مجموعة المعامل الأيمن. وعلى خلاف notIn، لا يتم تجاهل قيم NULL، بل تُقارَن NULL بعناصر المجموعة، وتُقيَّم NULL = NULL إلى true. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.

الصيغة

notNullIn(x, set)

الوسيطات

  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُرجع 1 إذا لم تكن x ضمن المجموعة، وإلا فتُرجع 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT notNullIn(NULL, tuple(1, NULL))
1

nullIn

أُضيفت في: v1.1.0

يتحقق مما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. وعلى خلاف in، لا تُتجاهل قيم NULL: إذ تُقارَن NULL بعناصر المجموعة، ويُقيَّم NULL = NULL على أنه true.

الصيغة

nullIn(x, set)

وسيطات

  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.

القيمة المعادة

تُرجع 1 إذا كانت x ضمن المجموعة، وإلا فتُرجع 0. UInt8

أمثلة

الاستخدام الأساسي

SELECT nullIn(NULL, tuple(1, NULL))
0

nullInIgnoreSet

أُضيف في: v1.1.0

يتحقق مما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. بخلاف in، لا يتم تجاهل قيم NULL: تُقارَن NULL بعناصر المجموعة، وتُقيَّم NULL = NULL إلى true. هذا هو متغير IgnoreSet المستخدم في تحليل النوع دون إنشاء المجموعة.

الصيغة

nullIn(x, set)

وسيطات

  • x — القيمة المطلوب التحقق منها. - set — مجموعة القيم.

القيمة المُعادة

تُعيد 1 إذا كانت x ضمن المجموعة، وتُعيد 0 بخلاف ذلك. UInt8

أمثلة

الاستخدام الأساسي

SELECT nullIn(NULL, tuple(1, NULL))
0
Navigation