يحلّل البيانات من الوسيطات وفق تنسيق الإدخال المحدد. وإذا لم تُحدَّد وسيطة البنية، فستُستخلص من البيانات.
format(format_name, [structure], data)
format_name — تنسيق البيانات.
structure - بنية الجدول. اختياري. التنسيق: ‘column1_name column1_type, column2_name column2_type, …’.
data — قيمة حرفية من نوع سلسلة نصية أو تعبير ثابت يُرجع سلسلة نصية تحتوي على بيانات بالتنسيق المحدد
جدول يتضمن بيانات جرى تحليلها من الوسيطة data وفقًا للتنسيق المحدد والبنية المحددة أو المستخرجة.
بدون وسيطة structure:
SELECT * FROM format(JSONEachRow,
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)
┌───b─┬─a─────┐
│ 111 │ Hello │
│ 123 │ World │
│ 112 │ Hello │
│ 124 │ World │
└─────┴───────┘
DESC format(JSONEachRow,
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)
┌─name─┬─type──────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ b │ Nullable(Float64) │ │ │ │ │ │
│ a │ Nullable(String) │ │ │ │ │ │
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
باستخدام الوسيطة structure:
SELECT * FROM format(JSONEachRow, 'a String, b UInt32',
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)
┌─a─────┬───b─┐
│ Hello │ 111 │
│ World │ 123 │
│ Hello │ 112 │
│ World │ 124 │
└───────┴─────┘
آخر تعديل في ٢٥ يونيو ٢٠٢٦