指定された入力フォーマットに従って、引数内のデータを解析します。structure 引数が指定されていない場合は、データから抽出されます。
構文
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 │
└───────┴─────┘