Tuple هو مجموعة من العناصر، لكل عنصر فيها نوع خاص به. ويجب أن يحتوي Tuple على عنصر واحد على الأقل.
تُستخدم Tuples للتجميع المؤقت للأعمدة. ويمكن تجميع الأعمدة عند استخدام تعبير IN في استعلام، وكذلك لتحديد بعض المعلمات الصورية لدوال لامبدا. لمزيد من المعلومات، راجع قسمي عوامل التشغيل IN والدوال عالية الرتبة.
يمكن أن تكون Tuples ناتج استعلام. في هذه الحالة، في التنسيقات النصية بخلاف JSON، تُفصل القيم بفواصل داخل (). أما في تنسيقات JSON، فتُخرَج Tuples على هيئة مصفوفات (داخل []).
يمكنك استخدام دالة لإنشاء tuple:
مثال على إنشاء Tuple:
يمكن أن يتضمن Tuple عنصرًا واحدًا
مثال:
يمكن استخدام الصيغة (tuple_element1, tuple_element2) لإنشاء tuple يتكوّن من عدة عناصر دون استدعاء الدالة tuple().
مثال:
عند إنشاء قيم Tuple أثناء التنفيذ، يستنتج ClickHouse أنواع وسائط Tuple على أنها أصغر أنواع يمكنها احتواء قيمة الوسيطة المقدَّمة. إذا كانت القيمة هي NULL، فسيكون النوع المستنتَج هو Nullable.
مثال على الاكتشاف التلقائي لنوع البيانات:
يمكن الإشارة إلى عناصر Tuple بالاسم أو برقم الفهرس:
تُقارَن قيمتا Tuple بمقارنة عناصرهما بالتتابع من اليسار إلى اليمين. فإذا كان العنصر الأول في Tuple الأولى أكبر (أصغر) من العنصر المناظر له في Tuple الثانية، عُدَّت Tuple الأولى أكبر (أصغر) من الثانية. وإلا، إذا كان العنصران متساويين، فتُقارَن القيمة التالية.
مثال:
أمثلة واقعية:
Nullable(Tuple(T1, T2, …))
ميزة تجريبيةيتطلب SET enable_nullable_tuple_type = 1
هذه ميزة تجريبية.
يسمح بأن تكون الـ Tuple بأكملها NULL، بخلاف Tuple(Nullable(T1), Nullable(T2), ...) حيث يمكن فقط للعناصر الفردية أن تكون NULL.
مثال: