Passer au contenu principal
Pour les dictionnaires créés avec des requêtes DDL, le paramètre dict_name doit être entièrement qualifié, sous la forme <database>.<dict_name>. Sinon, la base de données actuelle est utilisée.
Pour plus d’informations sur la connexion et la configuration des dictionnaires, consultez Dictionnaires.

Exemples de dictionnaires

Les exemples de cette section s’appuient sur les dictionnaires suivants. Vous pouvez les créer dans ClickHouse pour exécuter les exemples des fonctions décrites ci-dessous.
-- Créer une table avec tous les types de données requis
CREATE TABLE all_types_test (
    `id` UInt32,
    
    -- Type String
    `String_value` String,
    
    -- Types d'entiers non signés
    `UInt8_value` UInt8,
    `UInt16_value` UInt16,
    `UInt32_value` UInt32,
    `UInt64_value` UInt64,
    
    -- Types d'entiers signés
    `Int8_value` Int8,
    `Int16_value` Int16,
    `Int32_value` Int32,
    `Int64_value` Int64,
    
    -- Types à virgule flottante
    `Float32_value` Float32,
    `Float64_value` Float64,
    
    -- Types date/heure
    `Date_value` Date,
    `DateTime_value` DateTime,
    
    -- Types réseau
    `IPv4_value` IPv4,
    `IPv6_value` IPv6,
    
    -- Type UUID
    `UUID_value` UUID
) ENGINE = MergeTree() 
ORDER BY id;
-- Insérer des données de test
INSERT INTO all_types_test VALUES
(
    1,                              -- id
    'ClickHouse',                   -- String
    100,                            -- UInt8
    5000,                           -- UInt16
    1000000,                        -- UInt32
    9223372036854775807,            -- UInt64
    -100,                           -- Int8
    -5000,                          -- Int16
    -1000000,                       -- Int32
    -9223372036854775808,           -- Int64
    123.45,                         -- Float32
    987654.123456,                  -- Float64
    '2024-01-15',                   -- Date
    '2024-01-15 10:30:00',          -- DateTime
    '192.168.1.1',                  -- IPv4
    '2001:db8::1',                  -- IPv6
    '550e8400-e29b-41d4-a716-446655440000' -- UUID
)
-- Créer le dictionnaire
CREATE DICTIONARY all_types_dict
(
    id UInt32,
    String_value String,
    UInt8_value UInt8,
    UInt16_value UInt16,
    UInt32_value UInt32,
    UInt64_value UInt64,
    Int8_value Int8,
    Int16_value Int16,
    Int32_value Int32,
    Int64_value Int64,
    Float32_value Float32,
    Float64_value Float64,
    Date_value Date,
    DateTime_value DateTime,
    IPv4_value IPv4,
    IPv6_value IPv6,
    UUID_value UUID
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'all_types_test' DB 'default'))
LAYOUT(HASHED())
LIFETIME(MIN 300 MAX 600);
Créez une table pour stocker les données du dictionnaire regexp tree :
CREATE TABLE regexp_os(
    id UInt64,
    parent_id UInt64,
    regexp String,
    keys Array(String),
    values Array(String)
)
ENGINE = Memory;
Insérez des données dans cette table :
INSERT INTO regexp_os 
SELECT *
FROM s3(
    'https://datasets-documentation.s3.eu-west-3.amazonaws.com/' ||
    'user_agent_regex/regexp_os.csv'
);
Créez le dictionnaire regexp tree :
CREATE DICTIONARY regexp_tree
(
    regexp String,
    os_replacement String DEFAULT 'Other',
    os_v1_replacement String DEFAULT '0',
    os_v2_replacement String DEFAULT '0',
    os_v3_replacement String DEFAULT '0',
    os_v4_replacement String DEFAULT '0'
)
PRIMARY KEY regexp
SOURCE(CLICKHOUSE(TABLE 'regexp_os'))
LIFETIME(MIN 0 MAX 0)
LAYOUT(REGEXP_TREE);
Créez la table d’entrée :
CREATE TABLE range_key_dictionary_source_table
(
    key UInt64,
    start_date Date,
    end_date Date,
    value String,
    value_nullable Nullable(String)
)
ENGINE = TinyLog();
Insérez les données dans la table d’entrée :
INSERT INTO range_key_dictionary_source_table VALUES(1, toDate('2019-05-20'), toDate('2019-05-20'), 'First', 'First');
INSERT INTO range_key_dictionary_source_table VALUES(2, toDate('2019-05-20'), toDate('2019-05-20'), 'Second', NULL);
INSERT INTO range_key_dictionary_source_table VALUES(3, toDate('2019-05-20'), toDate('2019-05-20'), 'Third', 'Third');
Créez le dictionnaire :
CREATE DICTIONARY range_key_dictionary
(
    key UInt64,
    start_date Date,
    end_date Date,
    value String,
    value_nullable Nullable(String)
)
PRIMARY KEY key
SOURCE(CLICKHOUSE(HOST 'localhost' PORT tcpPort() TABLE 'range_key_dictionary_source_table'))
LIFETIME(MIN 1 MAX 1000)
LAYOUT(RANGE_HASHED())
RANGE(MIN start_date MAX end_date);
Créez la table source :
CREATE TABLE dict_mult_source
(
id UInt32,
c1 UInt32,
c2 String
) ENGINE = Memory;
Insérez les données dans la table source :
INSERT INTO dict_mult_source VALUES
(1, 1, '1'),
(2, 2, '2'),
(3, 3, '3');
Créez le dictionnaire :
CREATE DICTIONARY ext_dict_mult
(
    id UInt32,
    c1 UInt32,
    c2 String
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'dict_mult_source' DB 'default'))
LAYOUT(FLAT())
LIFETIME(MIN 0 MAX 0);
Créez la table source :
CREATE TABLE hierarchy_source
(
  id UInt64,
  parent_id UInt64,
  name String
) ENGINE = Memory;
Insérez les données dans la table source :
INSERT INTO hierarchy_source VALUES
(0, 0, 'Root'),
(1, 0, 'Level 1 - Node 1'),
(2, 1, 'Level 2 - Node 2'),
(3, 1, 'Level 2 - Node 3'),
(4, 2, 'Level 3 - Node 4'),
(5, 2, 'Level 3 - Node 5'),
(6, 3, 'Level 3 - Node 6');

-- 0 (Racine)
-- └── 1 (Niveau 1 - Nœud 1)
--     ├── 2 (Niveau 2 - Nœud 2)
--     │   ├── 4 (Niveau 3 - Nœud 4)
--     │   └── 5 (Niveau 3 - Nœud 5)
--     └── 3 (Niveau 2 - Nœud 3)
--         └── 6 (Niveau 3 - Nœud 6)
Créez le dictionnaire :
CREATE DICTIONARY hierarchical_dictionary
(
    id UInt64,
    parent_id UInt64 HIERARCHICAL,
    name String
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'hierarchy_source' DB 'default'))
LAYOUT(HASHED())
LIFETIME(MIN 300 MAX 600);

dictGet

Introduit dans : v18.16.0 Récupère des valeurs dans un dictionnaire. Syntaxe
dictGet('dict_name', attr_names, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_names — Nom de la colonne du dictionnaire, ou tuple de noms de colonnes. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant UInt64/Tuple(T). UInt64 ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr si la clé est trouvée. Si la clé n’est pas trouvée, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire. Exemples Récupérer un seul attribut
Query
SELECT dictGet('ext_dict_test', 'c1', toUInt64(1)) AS val
Response
1
Attributs multiples
Query
SELECT
    dictGet('ext_dict_mult', ('c1','c2'), number + 1) AS val,
    toTypeName(val) AS type
FROM system.numbers
LIMIT 3;
Response
┌─val─────┬─type───────────┐
│ (1,'1') │ Tuple(        ↴│
│         │↳    c1 UInt32,↴│
│         │↳    c2 String) │
│ (2,'2') │ Tuple(        ↴│
│         │↳    c1 UInt32,↴│
│         │↳    c2 String) │
│ (3,'3') │ Tuple(        ↴│
│         │↳    c1 UInt32,↴│
│         │↳    c2 String) │
└─────────┴────────────────┘

dictGetAll

Introduit dans : v23.5.0 Récupère les valeurs d’attribut de tous les nœuds correspondant à chaque clé dans un dictionnaire en arbre d’expressions régulières. Hormis le fait qu’elle renvoie des valeurs de type Array(T) au lieu de T, cette fonction se comporte comme dictGet. Syntaxe
dictGetAll(dict_name, attr_names, id_expr[, limit])
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_names — Nom de la colonne du dictionnaire, ou tuple de noms de colonnes. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • limit — Facultatif. Longueur maximale de chaque tableau de valeurs renvoyé. En cas de troncature, les nœuds enfants ont priorité sur les nœuds parents ; sinon, l’ordre de liste défini pour le dictionnaire regexp tree est respecté. S’il n’est pas spécifié, la longueur du tableau est illimitée. UInt*
Valeur renvoyée Renvoie un tableau des valeurs d’attribut du dictionnaire correspondant à id_expr pour chaque attribut spécifié par attr_names. S’il n’existe aucune clé correspondant à id_expr dans le dictionnaire, un tableau vide est renvoyé.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Array(T) Exemples Exemple d’utilisation
Query
SELECT
    'Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36' AS user_agent,

    -- This will match ALL applicable patterns
    dictGetAll('regexp_tree', 'os_replacement', 'Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36') AS all_matches,

    -- This returns only the first match
    dictGet('regexp_tree', 'os_replacement', 'Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36') AS first_match;
Response
┌─user_agent─────────────────────────────────────────────────────┬─all_matches─────────────────────────────┬─first_match─┐
│ Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36 │ ['Android','Android','Android','Linux'] │ Android     │
└────────────────────────────────────────────────────────────────┴─────────────────────────────────────────┴─────────────┘

dictGetChildren

Introduit dans : v21.4.0 Renvoie les enfants du premier niveau sous forme de tableau d’indices. Il s’agit de la transformation inverse de dictGetHierarchy. Syntaxe
dictGetChildren(dict_name, key)
Arguments Valeur renvoyée Renvoie les enfants de premier niveau de la clé. Array(UInt64) Exemples Récupérer les enfants de premier niveau d’un dictionnaire
Query
SELECT dictGetChildren('hierarchical_dictionary', 2);
Response
┌─dictGetChild⋯ionary', 2)─┐
│ [4,5]                    │
└──────────────────────────┘

dictGetDate

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données Date, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetDate(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetDate('all_types_dict', 'Date_value', 1)
Response
┌─dictGetDate(⋯_value', 1)─┐
│               2020-01-01 │
└──────────────────────────┘

dictGetDateOrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Date, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetDateOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur passée dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetDate('all_types_dict', 'Date_value', 1);

-- for key which does not exist, returns the provided default value
SELECT dictGetDateOrDefault('all_types_dict', 'Date_value', 999, toDate('1970-01-01'));
Response
┌─dictGetDate(⋯_value', 1)─┐
│               2024-01-15 │
└──────────────────────────┘
┌─dictGetDateO⋯70-01-01'))─┐
│               1970-01-01 │
└──────────────────────────┘

dictGetDateTime

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données DateTime, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetDateTime(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetDateTime('all_types_dict', 'DateTime_value', 1)
Response
┌─dictGetDateT⋯_value', 1)─┐
│      2024-01-15 10:30:00 │
└──────────────────────────┘

dictGetDateTimeOrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données DateTime, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée. Syntaxe
dictGetDateTimeOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetDateTime('all_types_dict', 'DateTime_value', 1);

-- for key which does not exist, returns the provided default value
SELECT dictGetDateTimeOrDefault('all_types_dict', 'DateTime_value', 999, toDateTime('1970-01-01 00:00:00'));
Response
┌─dictGetDateT⋯_value', 1)─┐
│      2024-01-15 10:30:00 │
└──────────────────────────┘
┌─dictGetDateT⋯0:00:00'))──┐
│      1970-01-01 00:00:00 │
└──────────────────────────┘

dictGetDescendants

Introduit dans : v21.4.0 Renvoie tous les descendants comme si la fonction dictGetChildren était appliquée récursivement level fois. Syntaxe
dictGetDescendants(dict_name, key, level)
Arguments
  • dict_name — Nom du dictionnaire. String
  • key — Clé à vérifier. const String
  • level — Clé à vérifier. Niveau hiérarchique. Si level = 0, renvoie tous les descendants. UInt8
Valeur renvoyée Renvoie les descendants de la clé. Array(UInt64) Exemples Obtenir les enfants du premier niveau d’un dictionnaire
Query
-- consider the following hierarchical dictionary:
-- 0 (Root)
-- └── 1 (Level 1 - Node 1)
--     ├── 2 (Level 2 - Node 2)
--     │   ├── 4 (Level 3 - Node 4)
--     │   └── 5 (Level 3 - Node 5)
--     └── 3 (Level 2 - Node 3)
--         └── 6 (Level 3 - Node 6)

SELECT dictGetDescendants('hierarchical_dictionary', 0, 2)
Response
┌─dictGetDesce⋯ary', 0, 2)─┐
│ [3,2]                    │
└──────────────────────────┘

dictGetFloat32

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Float32, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetFloat32(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetFloat32('all_types_dict', 'Float32_value', 1)
Response
┌─dictGetFloat⋯_value', 1)─┐
│               -123.123   │
└──────────────────────────┘

dictGetFloat32OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Float32, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée. Syntaxe
dictGetFloat32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetFloat32('all_types_dict', 'Float32_value', 1);

-- for key which does not exist, returns the provided default value (-1.0)
SELECT dictGetFloat32OrDefault('all_types_dict', 'Float32_value', 999, -1.0);
Response
┌─dictGetFloat⋯_value', 1)─┐
│                   123.45 │
└──────────────────────────┘
┌─dictGetFloat⋯e', 999, -1)─┐
│                       -1  │
└───────────────────────────┘

dictGetFloat64

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Float64, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetFloat64(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetFloat64('all_types_dict', 'Float64_value', 1)
Response
┌─dictGetFloat⋯_value', 1)─┐
│                 -123.123 │
└──────────────────────────┘

dictGetFloat64OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Float64, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetFloat64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetFloat64('all_types_dict', 'Float64_value', 1);

-- for key which does not exist, returns the provided default value (nan)
SELECT dictGetFloat64OrDefault('all_types_dict', 'Float64_value', 999, nan);
Response
┌─dictGetFloat⋯_value', 1)─┐
│            987654.123456 │
└──────────────────────────┘
┌─dictGetFloat⋯, 999, nan)─┐
│                      nan │
└──────────────────────────┘

dictGetHierarchy

Introduit dans : v1.1.0 Crée un tableau contenant tous les parents d’une clé dans le dictionnaire hiérarchique. Syntaxe
dictGetHierarchy(dict_name, key)
Arguments Valeur renvoyée Renvoie les parents associés à la clé. Array(UInt64) Exemples Obtenir la hiérarchie d’une clé
Query
SELECT dictGetHierarchy('hierarchical_dictionary', 5)
Response
┌─dictGetHiera⋯ionary', 5)─┐
│ [5,2,1]                  │
└──────────────────────────┘

dictGetIPv4

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données IPv4, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetIPv4(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetIPv4('all_types_dict', 'IPv4_value', 1)
Response
┌─dictGetIPv4('all_⋯ 'IPv4_value', 1)─┐
│ 192.168.0.1                         │
└─────────────────────────────────────┘

dictGetIPv4OrDefault

Introduit dans : v23.1.0 Convertit une valeur d’attribut de dictionnaire en type de données IPv4, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée. Syntaxe
dictGetIPv4OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetIPv4('all_types_dict', 'IPv4_value', 1);

-- for key which does not exist, returns the provided default value
SELECT dictGetIPv4OrDefault('all_types_dict', 'IPv4_value', 999, toIPv4('0.0.0.0'));
Response
┌─dictGetIPv4('all_⋯ 'IPv4_value', 1)─┐
│ 192.168.0.1                         │
└─────────────────────────────────────┘
┌─dictGetIPv4OrDefa⋯0.0.0.0'))─┐
│ 0.0.0.0                      │
└──────────────────────────────┘

dictGetIPv6

Introduit dans : v23.1.0 Convertit une valeur d’attribut de dictionnaire en type de données IPv6, indépendamment de la configuration du dictionnaire. Syntaxe
dictGetIPv6(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetIPv6('all_types_dict', 'IPv6_value', 1)
Response
┌─dictGetIPv6('all_⋯ 'IPv6_value', 1)─┐
│ 2001:db8:85a3::8a2e:370:7334        │
└─────────────────────────────────────┘

dictGetIPv6OrDefault

Introduit dans : v23.1.0 Convertit une valeur d’attribut de dictionnaire en type de données IPv6, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée. Syntaxe
dictGetIPv6OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne correspondant à la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie la valeur passée via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetIPv6('all_types_dict', 'IPv6_value', 1);

-- for key which does not exist, returns the provided default value
SELECT dictGetIPv6OrDefault('all_types_dict', 'IPv6_value', 999, '::1'::IPv6);
Response
┌─dictGetIPv6('all_⋯ 'IPv6_value', 1)─┐
│ 2001:db8:85a3::8a2e:370:7334        │
└─────────────────────────────────────┘
┌─dictGetIPv6OrDefa⋯:1'::IPv6)─┐
│ ::1                          │
└──────────────────────────────┘

dictGetInt16

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Int16, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetInt16(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour cet attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetInt16('all_types_dict', 'Int16_value', 1)
Response
┌─dictGetInt16⋯_value', 1)─┐
│                    -5000 │
└──────────────────────────┘

dictGetInt16OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Int16, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetInt16('all_types_dict', 'Int16_value', 1);

-- for key which does not exist, returns the provided default value (-1)
SELECT dictGetInt16OrDefault('all_types_dict', 'Int16_value', 999, -1);
Response
┌─dictGetInt16⋯_value', 1)─┐
│                    -5000 │
└──────────────────────────┘
┌─dictGetInt16⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetInt32

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Int32, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetInt32(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetInt32('all_types_dict', 'Int32_value', 1)
Response
┌─dictGetInt32⋯_value', 1)─┐
│                -1000000  │
└──────────────────────────┘

dictGetInt32OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Int32, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetInt32('all_types_dict', 'Int32_value', 1);

-- for key which does not exist, returns the provided default value (-1)
SELECT dictGetInt32OrDefault('all_types_dict', 'Int32_value', 999, -1);
Response
┌─dictGetInt32⋯_value', 1)─┐
│                -1000000  │
└──────────────────────────┘
┌─dictGetInt32⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetInt64

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données Int64, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetInt64(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetInt64('all_types_dict', 'Int64_value', 1)
Response
┌─dictGetInt64⋯_value', 1)───┐
│       -9223372036854775807 │
└────────────────────────────┘

dictGetInt64OrDefault

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données Int64, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetInt64('all_types_dict', 'Int64_value', 1);

-- for key which does not exist, returns the provided default value (-1)
SELECT dictGetInt64OrDefault('all_types_dict', 'Int64_value', 999, -1);
Response
┌─dictGetInt64⋯_value', 1)─┐
│     -9223372036854775808 │
└──────────────────────────┘
┌─dictGetInt64⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetInt8

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Int8, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetInt8(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetInt8('all_types_dict', 'Int8_value', 1)
Response
┌─dictGetInt8(⋯_value', 1)─┐
│                     -100 │
└──────────────────────────┘

dictGetInt8OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données Int8, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetInt8('all_types_dict', 'Int8_value', 1);

-- for key which does not exist, returns the provided default value (-1)
SELECT dictGetInt8OrDefault('all_types_dict', 'Int8_value', 999, -1);
Response
┌─dictGetInt8(⋯_value', 1)─┐
│                     -100 │
└──────────────────────────┘
┌─dictGetInt8O⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetKeys

Introduit dans : v25.12.0 Renvoie la ou les clés du dictionnaire dont l’attribut correspond à la valeur spécifiée. Il s’agit de l’inverse de la fonction dictGet sur un attribut unique. Utilisez le paramètre max_reverse_dictionary_lookup_cache_size_bytes pour limiter la taille du cache de recherche inverse par requête utilisé par dictGetKeys. Le cache stocke des tuples de clés sérialisés pour chaque valeur d’attribut afin d’éviter de parcourir à nouveau le dictionnaire au cours de la même requête. Le cache n’est pas conservé d’une requête à l’autre. Lorsque la limite est atteinte, les entrées sont supprimées selon la politique LRU. Ce mécanisme est particulièrement efficace avec de grands dictionnaires lorsque l’entrée présente une faible cardinalité et que l’ensemble de travail tient dans le cache. Définissez cette valeur sur 0 pour désactiver la mise en cache. Syntaxe
dictGetKeys('dict_name', 'attr_name', value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Attribut à comparer. String
  • value_expr — Valeur à comparer à l’attribut. Expression
Valeur renvoyée Pour les dictionnaires à clé unique : un tableau de clés dont l’attribut correspond à value_expr. Pour les dictionnaires à clés multiples : un tableau de tuples de clés dont l’attribut correspond à value_expr. S’il n’existe aucun attribut correspondant à value_expr dans le dictionnaire, un tableau vide est renvoyé. ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne peut pas être convertie dans le type de données de l’attribut. Exemples Exemple d’utilisation
Query
SELECT dictGetKeys('task_id_to_priority_dictionary', 'priority_level', 'high') AS ids;
Response
┌─ids───┐
│ [4,2] │
└───────┘

dictGetOrDefault

Introduit dans : v18.16.0 Récupère des valeurs d’un dictionnaire, avec une valeur par défaut si la clé est introuvable. Syntaxe
dictGetOrDefault('dict_name', attr_names, id_expr, default_value)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_names — Nom de la colonne du dictionnaire, ou tuple de noms de colonnes. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant UInt64/Tuple(T). UInt64 ou Tuple(T)
  • default_value — Valeur par défaut à renvoyer si la clé n’est pas trouvée. Le type doit correspondre au type de données de l’attribut.
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr si la clé est trouvée. Si la clé n’est pas trouvée, renvoie la default_value fournie. Exemples Obtenir la valeur avec une valeur par défaut
Query
SELECT dictGetOrDefault('ext_dict_mult', 'c1', toUInt64(999), 0) AS val
Response
0

dictGetOrNull

Introduit dans : v21.4.0 Récupère des valeurs dans un dictionnaire et renvoie NULL si la clé est introuvable. Syntaxe
dictGetOrNull('dict_name', 'attr_name', id_expr)
Arguments
  • dict_name — Nom du dictionnaire. Littéral de chaîne. - attr_name — Nom de la colonne à récupérer. Littéral de chaîne. - id_expr — Valeur de clé. Expression renvoyant une valeur du type de la clé du dictionnaire.
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr si la clé est trouvée. Si la clé n’est pas trouvée, renvoie NULL. Exemples Exemple avec le dictionnaire à clé d’intervalle
Query
SELECT
    (number, toDate('2019-05-20')),
    dictGetOrNull('range_key_dictionary', 'value', number, toDate('2019-05-20')),
FROM system.numbers LIMIT 5 FORMAT TabSeparated;
Response
(0,'2019-05-20')  \N
(1,'2019-05-20')  First
(2,'2019-05-20')  Second
(3,'2019-05-20')  Third
(4,'2019-05-20')  \N

dictGetString

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données String, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetString(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetString('all_types_dict', 'String_value', 1)
Response
┌─dictGetString(⋯_value', 1)─┐
│ test string                │
└────────────────────────────┘

dictGetStringOrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données String, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetStringOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur passée dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetString('all_types_dict', 'String_value', 1);

-- for key which does not exist, returns the provided default value
SELECT dictGetStringOrDefault('all_types_dict', 'String_value', 999, 'default');
Response
┌─dictGetString(⋯_value', 1)─┐
│ test string                │
└────────────────────────────┘
┌─dictGetStringO⋯ 999, 'default')─┐
│ default                         │
└─────────────────────────────────┘

dictGetUInt16

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données UInt16, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetUInt16(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si celle-ci ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetUInt16('all_types_dict', 'UInt16_value', 1)
Response
┌─dictGetUInt1⋯_value', 1)─┐
│                     5000 │
└──────────────────────────┘

dictGetUInt16OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données UInt16, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée. Syntaxe
dictGetUInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur passée dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetUInt16('all_types_dict', 'UInt16_value', 1);

-- for key which does not exist, returns the provided default value (0)
SELECT dictGetUInt16OrDefault('all_types_dict', 'UInt16_value', 999, 0);
Response
┌─dictGetUInt1⋯_value', 1)─┐
│                     5000 │
└──────────────────────────┘
┌─dictGetUInt1⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUInt32

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données UInt32, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetUInt32(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetUInt32('all_types_dict', 'UInt32_value', 1)
Response
┌─dictGetUInt3⋯_value', 1)─┐
│                  1000000 │
└──────────────────────────┘

dictGetUInt32OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données UInt32, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetUInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetUInt32('all_types_dict', 'UInt32_value', 1);

-- for key which does not exist, returns the provided default value (0)
SELECT dictGetUInt32OrDefault('all_types_dict', 'UInt32_value', 999, 0);
Response
┌─dictGetUInt3⋯_value', 1)─┐
│                  1000000 │
└──────────────────────────┘
┌─dictGetUInt3⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUInt64

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données UInt64, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetUInt64(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetUInt64('all_types_dict', 'UInt64_value', 1)
Response
┌─dictGetUInt6⋯_value', 1)─┐
│      9223372036854775807 │
└──────────────────────────┘

dictGetUInt64OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données UInt64, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetUInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetUInt64('all_types_dict', 'UInt64_value', 1);

-- for key which does not exist, returns the provideddefault value (0)
SELECT dictGetUInt64OrDefault('all_types_dict', 'UInt64_value', 999, 0);
Response
┌─dictGetUInt6⋯_value', 1)─┐
│      9223372036854775807 │
└──────────────────────────┘
┌─dictGetUInt6⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUInt8

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données UInt8, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetUInt8(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetUInt8('all_types_dict', 'UInt8_value', 1)
Response
┌─dictGetUInt8⋯_value', 1)─┐
│                      100 │
└──────────────────────────┘

dictGetUInt8OrDefault

Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de données UInt8, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetUInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetUInt8('all_types_dict', 'UInt8_value', 1);

-- for key which does not exist, returns the provided default value (0)
SELECT dictGetUInt8OrDefault('all_types_dict', 'UInt8_value', 999, 0);
Response
┌─dictGetUInt8⋯_value', 1)─┐
│                      100 │
└──────────────────────────┘
┌─dictGetUInt8⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUUID

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données UUID, quelle que soit la configuration du dictionnaire. Syntaxe
dictGetUUID(dict_name, attr_name, id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr, sinon renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
SELECT dictGetUUID('all_types_dict', 'UUID_value', 1)
Response
┌─dictGetUUID(⋯_value', 1)─────────────┐
│ 123e4567-e89b-12d3-a456-426614174000 │
└──────────────────────────────────────┘

dictGetUUIDOrDefault

Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de données UUID, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable. Syntaxe
dictGetUUIDOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • attr_name — Nom de la colonne du dictionnaire. String ou Tuple(String)
  • id_expr — Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire). Expression ou Tuple(T)
  • default_value_expr — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la clé id_expr. Expression ou Tuple(T)
Valeur renvoyée Renvoie la valeur de l’attribut du dictionnaire correspondant à id_expr ; sinon, renvoie la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Exemples Exemple d’utilisation
Query
-- for key which exists
SELECT dictGetUUID('all_types_dict', 'UUID_value', 1);

-- for key which does not exist, returns the provided default value
SELECT dictGetUUIDOrDefault('all_types_dict', 'UUID_value', 999, '00000000-0000-0000-0000-000000000000'::UUID);
Response
┌─dictGetUUID('all_t⋯ 'UUID_value', 1)─┐
│ 550e8400-e29b-41d4-a716-446655440000 │
└──────────────────────────────────────┘
┌─dictGetUUIDOrDefa⋯000000000000'::UUID)─┐
│ 00000000-0000-0000-0000-000000000000   │
└────────────────────────────────────────┘

dictHas

Introduit dans : v1.1.0 Vérifie si une clé est présente dans un dictionnaire. Syntaxe
dictHas('dict_name', id_expr)
Arguments Valeur renvoyée Renvoie 1 si la clé existe, sinon 0. UInt8 Exemples Vérifier l’existence d’une clé dans un dictionnaire
Query
-- consider the following hierarchical dictionary:
-- 0 (Root)
-- └── 1 (Level 1 - Node 1)
--     ├── 2 (Level 2 - Node 2)
--     │   ├── 4 (Level 3 - Node 4)
--     │   └── 5 (Level 3 - Node 5)
--     └── 3 (Level 2 - Node 3)
--         └── 6 (Level 3 - Node 6)

SELECT dictHas('hierarchical_dictionary', 2);
SELECT dictHas('hierarchical_dictionary', 7);
Response
┌─dictHas('hie⋯ionary', 2)─┐
│                        1 │
└──────────────────────────┘
┌─dictHas('hie⋯ionary', 7)─┐
│                        0 │
└──────────────────────────┘

dictIsIn

Introduit dans : v1.1.0 Vérifie l’ancêtre d’une clé sur l’ensemble de la chaîne hiérarchique du dictionnaire. Syntaxe
dictIsIn(dict_name, child_id_expr, ancestor_id_expr)
Arguments
  • dict_name — Nom du dictionnaire. String
  • child_id_expr — Clé à vérifier. String
  • ancestor_id_expr — Ancêtre présumé de la clé child_id_expr. const String
Valeur renvoyée Renvoie 0 si child_id_expr n’est pas un enfant de ancestor_id_expr, et 1 si child_id_expr est un enfant de ancestor_id_expr ou si child_id_expr est égal à ancestor_id_expr. UInt8 Exemples Vérification de la relation hiérarchique
Query
-- valid hierarchy
SELECT dictIsIn('hierarchical_dictionary', 6, 3)

-- invalid hierarchy
SELECT dictIsIn('hierarchical_dictionary', 3, 5)
Response
┌─dictIsIn('hi⋯ary', 6, 3)─┐
│                        1 │
└──────────────────────────┘
┌─dictIsIn('hi⋯ary', 3, 5)─┐
│                        0 │
└──────────────────────────┘
Dernière modification le 29 juin 2026