Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
ClickHouse launches Claude-powered Agents and House Mates partner program at Open House 2026 Read more →
A short example on how to extract base types from JSON
CREATE TABLE default.json_extract_example ( `rawJSON` String EPHEMERAL, `a1` String DEFAULT JSONExtractString(rawJSON, 'a1'), `a2` Boolean DEFAULT JSONExtractBool(rawJSON, 'a2'), `a3.aa1` Float DEFAULT JSONExtractFloat(JSONExtractRaw(rawJSON, 'a3'), 'aa1'), `a3.aa2` UInt8 DEFAULT JSONExtractUInt(JSONExtractRaw(rawJSON, 'a3'), 'aa2') ) ENGINE = MergeTree ORDER BY (a1, a2)
INSERT INTO default.json_extract_example (rawJSON) VALUES ('{"a1": "XX", "a2": true, "a3":{"aa1":23.11,"aa2":12}}');
SELECT * FROM json_extract_example FORMAT Pretty
┏━━━━┳━━━━━━┳━━━━━━━━┳━━━━━━━━┓ ┃ a1 ┃ a2 ┃ a3.aa1 ┃ a3.aa2 ┃ ┡━━━━╇━━━━━━╇━━━━━━━━╇━━━━━━━━┩ │ XX │ true │ 23.11 │ 12 │ └────┴──────┴────────┴────────┘
SELECT toTypeName(a1), toTypeName(a2), toTypeName(a3.aa1), toTypeName(a3.aa2) FROM default.json_extract_example FORMAT Pretty
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓ ┃ toTypeName(a1) ┃ toTypeName(a2) ┃ toTypeName(a3.aa1) ┃ toTypeName(a3.aa2) ┃ ┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩ │ String │ Bool │ Float32 │ UInt8 │ └────────────────┴────────────────┴────────────────────┴────────────────────┘
Was this page helpful?