الانتقال إلى المحتوى الرئيسي
دوال السلاسل النصية العامة ودوال البحث داخل السلاسل النصية موضَّحة كلٌّ على حدة.
تُولَّد الوثائق أدناه من جدول النظام system.functions.

format

قُدِّم في: v20.1.0 نسّق سلسلة pattern باستخدام القيم (السلاسل النصية، والأعداد الصحيحة، وما إلى ذلك) المدرجة في الوسيطات، بطريقة مشابهة للتنسيق في بايثون. يمكن أن تحتوي سلسلة النمط على حقول استبدال محاطة بأقواس معقوفة {}. ويُعدّ أي شيء غير موجود داخل الأقواس نصًا حرفيًا، ويُنسخ كما هو إلى المخرجات. يمكن تمثيل القوس المعقوف الحرفي باستخدام قوسين: {{ و }}. يمكن أن تكون أسماء الحقول أرقامًا (تبدأ من الصفر) أو فارغة (وفي هذه الحالة تُسنَد إليها ضمنيًا أرقام متزايدة بالتتابع). الصياغة
format(pattern, s0[, s1, ...])
المعاملات
  • pattern — سلسلة التنسيق التي تحتوي على عناصر نائبة. String
  • s0[, s1, ...] — قيمة واحدة أو أكثر لإحلالها في النمط. Any
القيمة المُعادة تُرجع سلسلة نصية منسّقة. String أمثلة عناصر نائبة مرقّمة
Query
SELECT format('{1} {0} {1}', 'World', 'Hello')
Response
┌─format('{1} {0} {1}', 'World', 'Hello')─┐
│ Hello World Hello                       │
└─────────────────────────────────────────┘
الترقيم الضمني
Query
SELECT format('{} {}', 'Hello', 'World')
Response
┌─format('{} {}', 'Hello', 'World')─┐
│ Hello World                       │
└───────────────────────────────────┘

overlay

قُدِّمت في: v24.9.0 يستبدل جزءًا من السلسلة input بسلسلة أخرى هي replace، بدءًا من الموضع offset المفهرس ابتداءً من 1. الصياغة
overlay(s, replace, offset[, length])
المعاملات
  • s — سلسلة الإدخال. String
  • replace — سلسلة الاستبدال const String
  • offset — عدد صحيح من النوع Int (بفهرسة تبدأ من 1). إذا كانت قيمة offset سالبة، فيُحسب من نهاية السلسلة s. Int
  • length — اختياري. عدد صحيح من النوع Int. يحدد length طول المقطع داخل سلسلة الإدخال s المراد استبداله. إذا لم يتم تحديد length، فإن عدد البايتات المحذوفة من s يساوي طول replace؛ وإلا تُحذف length بايت. Int
القيمة المُعادة تعيد سلسلة بعد الاستبدال. String أمثلة استبدال بسيط
Query
SELECT overlay('My father is from Mexico.', 'mother', 4) AS res;
Response
┌─res──────────────────────┐
│ My mother is from Mexico.│
└──────────────────────────┘
الاستبدال مع تحديد الطول
Query
SELECT overlay('My father is from Mexico.', 'dad', 4, 6) AS res;
Response
┌─res───────────────────┐
│ My dad is from Mexico.│
└───────────────────────┘

overlayUTF8

أُضيف في: v24.9.0 يستبدل جزءًا من السلسلة s بسلسلة أخرى هي replace، بدءًا من الفهرس offset ذي الأساس 1. يفترض أن السلسلة تحتوي على نص مرمّز بترميز UTF-8 صالح. إذا لم يتحقق هذا الافتراض، فلن يُطرَح أي استثناء وستكون النتيجة غير معرّفة. الصيغة
overlayUTF8(s, replace, offset[, length])
الوسيطات
  • s — سلسلة الإدخال. String
  • replace — سلسلة الاستبدال. const String
  • offset — عدد صحيح من النوع Int (بفهرسة تبدأ من 1). إذا كانت قيمة offset سالبة، فيُحسب الموضع من نهاية سلسلة الإدخال s. (U)Int*
  • length — اختياري. يحدد طول المقتطف داخل سلسلة الإدخال s المطلوب استبداله. إذا لم يتم تحديد length، فإن عدد الأحرف المُزالة من s يساوي طول replace، وإلا فتُزال length أحرف. (U)Int*
القيمة المعادة تعيد سلسلة نصية بعد الاستبدال. String أمثلة استبدال UTF-8
Query
SELECT overlayUTF8('Mein Vater ist aus Österreich.', 'der Türkei', 20) AS res;
Response
┌─res───────────────────────────┐
│ Mein Vater ist aus der Türkei.│
└───────────────────────────────┘

printf

أُضيف في: v24.8.0 تنسّق الدالة printf السلسلة المعطاة باستخدام القيم (مثل السلاسل النصية والأعداد الصحيحة والأعداد ذات الفاصلة العائمة وغيرها) المدرجة في الوسائط، على نحو مشابه لدالة printf في C++. يمكن أن تحتوي سلسلة التنسيق على محددات تنسيق تبدأ بالمحرف %. ويُعدّ أي شيء لا يقع ضمن % ومحدد التنسيق الذي يليه نصًا حرفيًا، ويُنسخ كما هو إلى المخرجات. يمكن إفلات المحرف % الحرفي باستخدام %%. يمكن أن تكون سلسلة التنسيق إما ثابتًا أو تعبير عمود، مما يتيح استخدام أنماط تنسيق مختلفة لكل صف. البنية
printf(format[, sub1, sub2, ...])
الوسائط
  • format — سلسلة التنسيق التي تحتوي على محددات %. String
  • sub1, sub2, ... — اختياري. صفر أو أكثر من القيم لإدراجها في سلسلة التنسيق. Any
القيمة المُعادة يعيد سلسلة منسّقة. String أمثلة تنسيق بأسلوب C++
Query
SELECT printf('%%%s %s %d', 'Hello', 'World', 2024);
Response
┌─printf('%%%s %s %d', 'Hello', 'World', 2024)─┐
│ %Hello World 2024                            │
└──────────────────────────────────────────────┘

regexpQuoteMeta

أُضيف في: v20.1.0 يضيف شرطة مائلة عكسية قبل هذه المحارف ذات المعنى الخاص في التعبيرات النمطية: \0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -. ويختلف هذا التنفيذ قليلًا عن re2::RE2::QuoteMeta. فهو يهرّب البايت الصفري على هيئة \0 بدلًا من \x00، ولا يهرّب إلا المحارف المطلوبة. الصياغة
regexpQuoteMeta(s)
المعاملات
  • s — سلسلة الإدخال النصية التي تحتوي على أحرف يجب عمل escape لها في التعابير النمطية. String
القيمة المُعادة يُرجع سلسلة نصية مع عمل escape للأحرف الخاصة في التعابير النمطية. String أمثلة عمل escape للأحرف الخاصة في التعابير النمطية
Query
SELECT regexpQuoteMeta('Hello. [World]? (Yes)*') AS res
Response
┌─res───────────────────────────┐
│ Hello\. \[World\]\? \(Yes\)\* │
└───────────────────────────────┘

replaceAll

أُضيف في: v1.1.0 يستبدل جميع حالات ظهور السلسلة الفرعية pattern في haystack بالسلسلة replacement. البنية
replaceAll(haystack, pattern, replacement)
الأسماء المستعارة: replace الوسيطات
  • haystack — سلسلة الإدخال المراد البحث فيها. String
  • pattern — السلسلة الفرعية المطلوب العثور عليها واستبدالها. const String
  • replacement — السلسلة التي سيُستبدل بها النمط. const String
القيمة المُعادة تُرجِع سلسلة استُبدلت فيها جميع تكرارات النمط. String أمثلة استبدال جميع التكرارات
Query
SELECT replaceAll('Hello, Hello world', 'Hello', 'Hi') AS res;
Response
┌─res──────────┐
│ Hi, Hi world │
└──────────────┘

replaceOne

تم تقديمه في: v1.1.0 يستبدل أول ظهور للسلسلة الفرعية pattern في haystack بالسلسلة replacement. الصيغة
replaceOne(haystack, pattern, replacement)
الوسائط
  • haystack — سلسلة الإدخال المراد البحث فيها. String
  • pattern — السلسلة الفرعية المطلوب العثور عليها واستبدالها. const String
  • replacement — السلسلة التي سيُستبدل بها النمط. const String
القيمة المُعادة يعيد سلسلة نصية بعد استبدال أول ظهور للنمط. String أمثلة استبدال أول ظهور
Query
SELECT replaceOne('Hello, Hello world', 'Hello', 'Hi') AS res;
Response
┌─res─────────────┐
│ Hi, Hello world │
└─────────────────┘

replaceRegexpAll

طُرحت في: v1.1.0 تشبه replaceRegexpOne، لكنها تستبدل جميع حالات ظهور النمط. واستثناءً من ذلك، إذا طابق تعبير نمطي سلسلة فرعية فارغة، فلا يُجرى الاستبدال أكثر من مرة واحدة. الصيغة
replaceRegexpAll(haystack, pattern, replacement)
الأسماء البديلة: REGEXP_REPLACE الوسيطات
  • haystack — سلسلة الإدخال المراد البحث فيها. String
  • pattern — نمط التعبير النمطي المراد العثور عليه. const String
  • replacement — السلسلة التي سيُستبدل بها النمط، وقد تحتوي على استبدالات. const String
القيمة المرجعة يعيد سلسلةً استُبدلت فيها جميع المطابقات للتعبير النمطي. String أمثلة استبدال جميع الأحرف بنسخة مضاعفة
Query
SELECT replaceRegexpAll('Hello123', '.', '\\\\0\\\\0') AS res
Response
┌─res──────────────────┐
│ HHeelllloo112233     │
└──────────────────────┘
مثال على استبدال سلسلة فرعية فارغة
Query
SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
Response
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘

replaceRegexpOne

أُضيف في: v1.1.0 يستبدل أول ظهور للسلسلة الفرعية المطابقة للتعبير النمطي pattern (بصيغة re2) في haystack بالسلسلة replacement. يمكن أن تحتوي replacement على استبدالات \0-\9. تقابل الاستبدالات \1-\9 المجموعة الملتقِطة الأولى حتى التاسعة (المطابقة الفرعية)، بينما يقابل الاستبدال \0 المطابقة كاملةً. لاستخدام المحرف \ حرفيًا في السلسلتين pattern أو replacement، قم بتهريبه باستخدام \. ضع في اعتبارك أيضًا أن القيم الحرفية النصية تتطلب تهريبًا إضافيًا. الصيغة
replaceRegexpOne(haystack, pattern, replacement)
الوسائط
  • haystack — سلسلة الإدخال المراد البحث فيها. String
  • pattern — نمط التعبير النمطي المطلوب العثور عليه. const String
  • replacement — السلسلة التي سيُستبدل بها النمط، وقد تتضمن استبدالات. const String
القيمة المُعادة يعيد سلسلة جرى فيها استبدال أول تطابق للتعبير النمطي. String أمثلة تحويل تواريخ ISO إلى التنسيق الأمريكي
Query
SELECT DISTINCT
    EventDate,
    replaceRegexpOne(toString(EventDate), '(\\d{4})-(\\d{2})-(\\d{2})', '\\2/\\3/\\1') AS res
FROM test.hits
LIMIT 7
FORMAT TabSeparated
Response
2014-03-17      03/17/2014
2014-03-18      03/18/2014
2014-03-19      03/19/2014
2014-03-20      03/20/2014
2014-03-21      03/21/2014
2014-03-22      03/22/2014
2014-03-23      03/23/2014
نسخ سلسلة نصية عشر مرات
Query
SELECT replaceRegexpOne('Hello, World!', '.*', '\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0') AS res
Response
┌─res────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World! │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

translate

أُضيفت في: v22.7.0 تستبدل الأحرف في السلسلة s باستخدام مطابقة أحرف واحدًا لواحد تحددها السلسلتان from وto. يجب أن تكون from وto سلسلتين ثابتتين من نوع ASCII. إذا كان حجم from وto متساويًا، فسيُستبدل كل ظهور لأول حرف من first في s بأول حرف من to، ويُستبدل كل ظهور لثاني حرف من first في s بثاني حرف من to، وهكذا. إذا كانت from تحتوي على أحرف أكثر من to، فستُحذف من s جميع ظهورات الأحرف الموجودة في نهاية from التي لا يقابلها حرف في to. لا تعدّل الدالة الأحرف غير التابعة لـ ASCII في s. البنية
translate(s, from, to)
الوسيطات
  • s — سلسلة الإدخال المراد ترجمتها. String
  • from — سلسلة ASCII ثابتة تحتوي على الأحرف المراد استبدالها. const String
  • to — سلسلة ASCII ثابتة تحتوي على أحرف الاستبدال. const String
القيمة المُعادة تعيد سلسلة بعد تطبيق تحويلات الأحرف عليها. String أمثلة تعيين الأحرف
Query
SELECT translate('Hello, World!', 'delor', 'DELOR') AS res
Response
┌─res───────────┐
│ HELLO, WORLD! │
└───────────────┘
أطوال متفاوتة
Query
SELECT translate('clickhouse', 'clickhouse', 'CLICK') AS res
Response
┌─res───┐
│ CLICK │
└───────┘

translateUTF8

ظهر في: v22.7.0 مثل translate، لكنه يفترض أن s وfrom وto سلاسل نصية مرمّزة بترميز UTF-8. الصياغة
translateUTF8(s, from, to)
الوسائط
  • s — سلسلة UTF-8 المُدخلة المراد تحويلها. String
  • from — سلسلة UTF-8 ثابتة تحتوي على الأحرف المراد استبدالها. const String
  • to — سلسلة UTF-8 ثابتة تحتوي على أحرف الاستبدال. const String
القيمة المُعادة تعيد قيمة من نوع البيانات String. String أمثلة تحويل أحرف UTF-8
Query
SELECT translateUTF8('Münchener Straße', 'üß', 'us') AS res;
Response
┌─res──────────────┐
│ Munchener Strase │
└──────────────────┘
آخر تعديل في ٢٥ يونيو ٢٠٢٦