قواعد المقارنة
تعيد دوال المقارنة أدناه القيمة 0 أو 1 من النوع UInt8. ولا يمكن
مقارنة إلا القيم التي تقع ضمن المجموعة نفسها (مثل UInt16 وUInt64) وليس بين مجموعات مختلفة (مثل UInt16 وDateTime).
كما يمكن مقارنة الأرقام والسلاسل النصية، وكذلك السلاسل النصية بالتواريخ، والتواريخ بالأوقات.
أما بالنسبة إلى tuples وarrays، فتكون المقارنة معجمية، أي تُجرى المقارنة بين كل
عنصر مقابل في الـ tuple/array على الجهة اليسرى ونظيره على الجهة اليمنى.
يمكن مقارنة الأنواع التالية:
- الأرقام والقيم العشرية
- السلاسل النصية والسلاسل النصية ثابتة الطول
- التواريخ
- التواريخ مع الأوقات
- tuples (مقارنة معجمية)
- arrays (مقارنة معجمية)
equals
أُضيف في: v1.1.0
يقارن بين قيمتين للتحقق من تساويهما.
بناء الجملة
equals(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)1globalInIgnoreSet
أُضيف في: v1.1.0
مماثل لـ in، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.
البنية
globalIn(x, set)الوسيطات
x— القيمة المراد التحقّق منها. -set— مجموعة القيم.
القيمة المُعادة
تُعيد 1 إذا كانت x ضمن المجموعة، وإلا فتُعيد 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT 1 IN (1, 2, 3)1globalNotIn
أُضيفت في: v1.1.0
مطابقة لـ notIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
الصيغة
globalNotIn(x, set)المعاملات
x— القيمة المطلوب التحقّق منها. -set— مجموعة القيم.
القيمة المُعادة
يعيد 1 إذا لم تكن x ضمن المجموعة، و0 بخلاف ذلك. UInt8
أمثلة
الاستخدام الأساسي
SELECT 4 NOT IN (1, 2, 3)1globalNotInIgnoreSet
قُدِّم في: v1.1.0
مماثل لـ notIn، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
هذا هو متغير IgnoreSet المستخدم في تحليل النوع دون إنشاء المجموعة.
البنية
globalNotIn(x, set)المعاملات
x— القيمة المراد التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
تُرجِع 1 إذا لم يكن x ضمن المجموعة، وإلا فتُرجِع 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT 4 NOT IN (1, 2, 3)1globalNotNullIn
أُضيف في: v1.1.0
مماثلة لـ notNullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
الصيغة
globalNotNullIn(x, set)وسيطات
x— القيمة المطلوب التحقّق منها. -set— مجموعة القيم.
القيمة المُعادة
تعيد 1 إذا لم تكن x ضمن المجموعة، وإلا فتعيد 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT notNullIn(NULL, tuple(1, NULL))1globalNotNullInIgnoreSet
أُضيفت في: v1.1.0
مماثلة لـ notNullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
وهذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.
الصيغة
globalNotNullIn(x, set)وسيطات
x— القيمة المراد التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
تُرجِع 1 إذا لم تكن x ضمن المجموعة، و0 بخلاف ذلك. UInt8
أمثلة
الاستخدام الأساسي
SELECT notNullIn(NULL, tuple(1, NULL))1globalNullIn
أُضيف في: v1.1.0
مماثلة لـ nullIn، لكنها تستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
الصيغة
globalNullIn(x, set)الوسيطات
x— القيمة المراد التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
تُرجِع 1 إذا كانت x ضمن المجموعة، وإلا فتُرجِع 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT nullIn(NULL, tuple(1, NULL))0globalNullInIgnoreSet
أُضيف في: v1.1.0
مماثل لـ nullIn، لكنه يستخدم التوزيع العام للمجموعة في الاستعلامات الموزعة. وتُرسَل المجموعة إلى جميع الخوادم البعيدة.
هذا هو متغير IgnoreSet المستخدم في تحليل النوع من دون إنشاء المجموعة.
الصيغة
globalNullIn(x, set)وسيطات
x— القيمة المطلوب التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
تُعيد 1 إذا كانت x موجودة في المجموعة، وإلا فتُعيد 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT nullIn(NULL, tuple(1, NULL))0greater
أُضيفت في: v1.1.0
يقارن بين قيمتين لتحديد ما إذا كانت إحداهما أكبر من الأخرى.
البنية
greater(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الوسائط
القيمة المُعادة
يعيد 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)1inIgnoreSet
أُضيفت في: v1.1.0
يفحص ما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. يُرجع 1 إذا كان كذلك، و0 بخلاف ذلك. تُتجاهل قيم NULL في المعامل الأيسر (وتُعامل على أنها غير موجودة في المجموعة). هذا هو متغير IgnoreSet المستخدم في تحليل النوع من دون إنشاء المجموعة.
الصيغة
in(x, set)الوسائط
x— القيمة المراد التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
تُرجع 1 إذا كانت قيمة x ضمن المجموعة، وإلا فتُرجع 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT 1 IN (1, 2, 3)1isDistinctFrom
أُضيفت في: v25.11.0
تُجري مقارنة "عدم المساواة" تراعي NULL بين قيمتين.
تعيد true إذا كانت القيمتان مختلفتين (غير متساويتين)، بما في ذلك عندما تكون إحدى القيم NULL والأخرى ليست كذلك.
تعيد false إذا كانت القيمتان متساويتين، أو إذا كانت كلتاهما NULL.
البنية
isDistinctFrom(x, y)الوسيطات
x— القيمة الأولى للمقارنة. يمكن أن تكون من أي نوع بيانات في ClickHouse.Anyy— القيمة الثانية للمقارنة. يمكن أن تكون من أي نوع بيانات في 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.Anyy— القيمة الثانية للمقارنة. يمكن أن تكون من أي نوع بيانات في 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المعاملات
القيمة المُعادة
تعيد 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الوسائط
القيمة المُعادة
تعيد 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المعاملات
القيمة المُعادة
تُرجع 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)1notInIgnoreSet
قُدِّم في: v1.1.0
يتحقق مما إذا كان المعامل الأيسر ليس ضمن مجموعة المعامل الأيمن. ويُرجع 1 إذا لم يكن ضمن المجموعة، و0 خلاف ذلك. تُتجاوز قيم NULL في المعامل الأيسر. هذا هو متغير IgnoreSet المستخدم لتحليل النوع دون إنشاء المجموعة.
البنية
notIn(x, set)الوسيطات
x— القيمة المراد التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
تُعيد 1 إذا لم تكن x ضمن المجموعة، وإلا تُعيد 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT 4 NOT IN (1, 2, 3)1notNullIn
أُضيفت في: v1.1.0
يتحقق مما إذا كان المعامل الأيسر ليس عنصرًا في مجموعة المعامل الأيمن. وعلى عكس notIn، لا يتم تجاهل قيم NULL: تُقارَن NULL بعناصر المجموعة، وتكون نتيجة NULL = NULL هي true.
الصيغة
notNullIn(x, set)الوسيطات
x— القيمة المراد التحقق منها. -set— مجموعة القيم.
القيمة المُعادة
يُرجع 1 إذا لم تكن x ضمن المجموعة، وإلا فيُرجع 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT notNullIn(NULL, tuple(1, NULL))1notNullInIgnoreSet
أُضيف في: 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))1nullIn
أُضيفت في: v1.1.0
يتحقق مما إذا كان المعامل الأيسر عنصرًا في مجموعة المعامل الأيمن. وعلى خلاف in، لا تُتجاهل قيم NULL: إذ تُقارَن NULL بعناصر المجموعة، ويُقيَّم NULL = NULL على أنه true.
الصيغة
nullIn(x, set)وسيطات
x— القيمة المطلوب التحقق منها. -set— مجموعة القيم.
القيمة المعادة
تُرجع 1 إذا كانت x ضمن المجموعة، وإلا فتُرجع 0. UInt8
أمثلة
الاستخدام الأساسي
SELECT nullIn(NULL, tuple(1, NULL))0nullInIgnoreSet
أُضيف في: 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