Skip to main content
Skip to main content

format

Parses data from arguments according to specified input format. If structure argument is not specified, it's extracted from the data.

Syntax

format(format_name, [structure], data)

Parameters

  • format_name — The format of the data.
  • structure - Structure of the table. Optional. Format 'column1_name column1_type, column2_name column2_type, ...'.
  • data — String literal or constant expression that returns a string containing data in specified format

Returned value

A table with data parsed from data argument according to specified format and specified or extracted structure.

Examples

Without structure argument:

Query:

SELECT * FROM format(JSONEachRow,
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)

Result:

┌───b─┬─a─────┐
│ 111 │ Hello │
│ 123 │ World │
│ 112 │ Hello │
│ 124 │ World │
└─────┴───────┘

Query:

DESC format(JSONEachRow,
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)

Result:

┌─name─┬─type──────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ b │ Nullable(Float64) │ │ │ │ │ │
│ a │ Nullable(String) │ │ │ │ │ │
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

With structure argument:

Query:

SELECT * FROM format(JSONEachRow, 'a String, b UInt32',
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)

Result:

┌─a─────┬───b─┐
│ Hello │ 111 │
│ World │ 123 │
│ Hello │ 112 │
│ World │ 124 │
└───────┴─────┘

See Also