Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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)

Arguments

  • 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:

Querysql
SELECT * FROM format(JSONEachRow,
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)
Responseresponse
┌───b─┬─a─────┐
│ 111 │ Hello │
│ 123 │ World │
│ 112 │ Hello │
│ 124 │ World │
└─────┴───────┘
Querysql
DESC format(JSONEachRow,
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)
Responseresponse
┌─name─┬─type──────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ b    │ Nullable(Float64) │              │                    │         │                  │                │
│ a    │ Nullable(String)  │              │                    │         │                  │                │
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

With structure argument:

Querysql
SELECT * FROM format(JSONEachRow, 'a String, b UInt32',
$$
{"a": "Hello", "b": 111}
{"a": "World", "b": 123}
{"a": "Hello", "b": 112}
{"a": "World", "b": 124}
$$)
Responseresponse
┌─a─────┬───b─┐
│ Hello │ 111 │
│ World │ 123 │
│ Hello │ 112 │
│ World │ 124 │
└───────┴─────┘
Navigation