> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation des fonctions de travail avec les dictionnaires

# Fonctions de travail avec les dictionnaires

<Note>
  Pour les dictionnaires créés avec des [requêtes DDL](/fr/reference/statements/create/dictionary), 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.
</Note>

Pour plus d’informations sur la connexion et la configuration des dictionnaires, consultez [Dictionnaires](/fr/reference/statements/create/dictionary).

<div id="example-dictionary">
  ## Exemples de dictionnaires
</div>

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.

<Accordion title="Exemple de dictionnaire pour les fonctions dictGet\<T\> et dictGet\<T\>OrDefault">
  ```sql theme={null}
  -- 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;
  ```

  ```sql theme={null}
  -- 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
  )
  ```

  ```sql theme={null}
  -- 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);
  ```
</Accordion>

<Accordion title="Exemple de dictionnaire pour dictGetAll">
  Créez une table pour stocker les données du dictionnaire regexp tree :

  ```sql theme={null}
  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 :

  ```sql theme={null}
  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 :

  ```sql theme={null}
  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);
  ```
</Accordion>

<Accordion title="Exemple de dictionnaire à clé d’intervalle">
  Créez la table d’entrée :

  ```sql theme={null}
  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 :

  ```sql theme={null}
  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 :

  ```sql theme={null}
  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);
  ```
</Accordion>

<Accordion title="Exemple de dictionnaire à clé composite">
  Créez la table source :

  ```sql theme={null}
  CREATE TABLE dict_mult_source
  (
  id UInt32,
  c1 UInt32,
  c2 String
  ) ENGINE = Memory;
  ```

  Insérez les données dans la table source :

  ```sql theme={null}
  INSERT INTO dict_mult_source VALUES
  (1, 1, '1'),
  (2, 2, '2'),
  (3, 3, '3');
  ```

  Créez le dictionnaire :

  ```sql theme={null}
  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);
  ```
</Accordion>

<Accordion title="Exemple de dictionnaire hiérarchique">
  Créez la table source :

  ```sql theme={null}
  CREATE TABLE hierarchy_source
  (
    id UInt64,
    parent_id UInt64,
    name String
  ) ENGINE = Memory;
  ```

  Insérez les données dans la table source :

  ```sql theme={null}
  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 :

  ```sql theme={null}
  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);
  ```
</Accordion>

{/*AUTOGENERATED_START*/}

<div id="dictGet">
  ## dictGet
</div>

Introduit dans : v18.16.0

Récupère des valeurs dans un dictionnaire.

**Syntaxe**

```sql theme={null}
dictGet('dict_name', attr_names, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_names` — Nom de la colonne du dictionnaire, ou tuple de noms de colonnes. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `id_expr` — Valeur de la clé. Expression renvoyant UInt64/Tuple(T). [`UInt64`](/fr/reference/data-types/int-uint) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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**

```sql title=Query theme={null}
SELECT dictGet('ext_dict_test', 'c1', toUInt64(1)) AS val
```

```response title=Response theme={null}
1
```

**Attributs multiples**

```sql title=Query theme={null}
SELECT
    dictGet('ext_dict_mult', ('c1','c2'), number + 1) AS val,
    toTypeName(val) AS type
FROM system.numbers
LIMIT 3;
```

```response title=Response theme={null}
┌─val─────┬─type───────────┐
│ (1,'1') │ Tuple(        ↴│
│         │↳    c1 UInt32,↴│
│         │↳    c2 String) │
│ (2,'2') │ Tuple(        ↴│
│         │↳    c1 UInt32,↴│
│         │↳    c2 String) │
│ (3,'3') │ Tuple(        ↴│
│         │↳    c1 UInt32,↴│
│         │↳    c2 String) │
└─────────┴────────────────┘
```

<div id="dictGetAll">
  ## dictGetAll
</div>

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](/fr/reference/statements/create/dictionary/layouts/regexp-tree).

Hormis le fait qu’elle renvoie des valeurs de type `Array(T)` au lieu de `T`, cette fonction se comporte comme [`dictGet`](#dictGet).

**Syntaxe**

```sql theme={null}
dictGetAll(dict_name, attr_names, id_expr[, limit])
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_names` — Nom de la colonne du dictionnaire, ou tuple de noms de colonnes. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `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*`](/fr/reference/data-types/int-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é.

<Note>
  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.
</Note>

[`Array(T)`](/fr/reference/data-types/array)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
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 title=Response theme={null}
┌─user_agent─────────────────────────────────────────────────────┬─all_matches─────────────────────────────┬─first_match─┐
│ Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36 │ ['Android','Android','Android','Linux'] │ Android     │
└────────────────────────────────────────────────────────────────┴─────────────────────────────────────────┴─────────────┘
```

<div id="dictGetChildren">
  ## dictGetChildren
</div>

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](#dictGetHierarchy).

**Syntaxe**

```sql theme={null}
dictGetChildren(dict_name, key)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `key` — Clé à vérifier. [`const String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie les enfants de premier niveau de la clé. [`Array(UInt64)`](/fr/reference/data-types/array)

**Exemples**

**Récupérer les enfants de premier niveau d'un dictionnaire**

```sql title=Query theme={null}
SELECT dictGetChildren('hierarchical_dictionary', 2);
```

```response title=Response theme={null}
┌─dictGetChild⋯ionary', 2)─┐
│ [4,5]                    │
└──────────────────────────┘
```

<div id="dictGetDate">
  ## dictGetDate
</div>

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**

```sql theme={null}
dictGetDate(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetDate('all_types_dict', 'Date_value', 1)
```

```response title=Response theme={null}
┌─dictGetDate(⋯_value', 1)─┐
│               2020-01-01 │
└──────────────────────────┘
```

<div id="dictGetDateOrDefault">
  ## dictGetDateOrDefault
</div>

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**

```sql theme={null}
dictGetDateOrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetDate(⋯_value', 1)─┐
│               2024-01-15 │
└──────────────────────────┘
┌─dictGetDateO⋯70-01-01'))─┐
│               1970-01-01 │
└──────────────────────────┘
```

<div id="dictGetDateTime">
  ## dictGetDateTime
</div>

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**

```sql theme={null}
dictGetDateTime(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetDateTime('all_types_dict', 'DateTime_value', 1)
```

```response title=Response theme={null}
┌─dictGetDateT⋯_value', 1)─┐
│      2024-01-15 10:30:00 │
└──────────────────────────┘
```

<div id="dictGetDateTimeOrDefault">
  ## dictGetDateTimeOrDefault
</div>

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**

```sql theme={null}
dictGetDateTimeOrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetDateT⋯_value', 1)─┐
│      2024-01-15 10:30:00 │
└──────────────────────────┘
┌─dictGetDateT⋯0:00:00'))──┐
│      1970-01-01 00:00:00 │
└──────────────────────────┘
```

<div id="dictGetDescendants">
  ## dictGetDescendants
</div>

Introduit dans : v21.4.0

Renvoie tous les descendants comme si la fonction [`dictGetChildren`](#dictGetChildren) était appliquée récursivement `level` fois.

**Syntaxe**

```sql theme={null}
dictGetDescendants(dict_name, key, level)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `key` — Clé à vérifier. [`const String`](/fr/reference/data-types/string)
* `level` — Clé à vérifier. Niveau hiérarchique. Si `level = 0`, renvoie tous les descendants. [`UInt8`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Renvoie les descendants de la clé. [`Array(UInt64)`](/fr/reference/data-types/array)

**Exemples**

**Obtenir les enfants du premier niveau d'un dictionnaire**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetDesce⋯ary', 0, 2)─┐
│ [3,2]                    │
└──────────────────────────┘
```

<div id="dictGetFloat32">
  ## dictGetFloat32
</div>

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**

```sql theme={null}
dictGetFloat32(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetFloat32('all_types_dict', 'Float32_value', 1)
```

```response title=Response theme={null}
┌─dictGetFloat⋯_value', 1)─┐
│               -123.123   │
└──────────────────────────┘
```

<div id="dictGetFloat32OrDefault">
  ## dictGetFloat32OrDefault
</div>

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**

```sql theme={null}
dictGetFloat32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetFloat⋯_value', 1)─┐
│                   123.45 │
└──────────────────────────┘
┌─dictGetFloat⋯e', 999, -1)─┐
│                       -1  │
└───────────────────────────┘
```

<div id="dictGetFloat64">
  ## dictGetFloat64
</div>

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**

```sql theme={null}
dictGetFloat64(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetFloat64('all_types_dict', 'Float64_value', 1)
```

```response title=Response theme={null}
┌─dictGetFloat⋯_value', 1)─┐
│                 -123.123 │
└──────────────────────────┘
```

<div id="dictGetFloat64OrDefault">
  ## dictGetFloat64OrDefault
</div>

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**

```sql theme={null}
dictGetFloat64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetFloat⋯_value', 1)─┐
│            987654.123456 │
└──────────────────────────┘
┌─dictGetFloat⋯, 999, nan)─┐
│                      nan │
└──────────────────────────┘
```

<div id="dictGetHierarchy">
  ## dictGetHierarchy
</div>

Introduit dans : v1.1.0

Crée un tableau contenant tous les parents d’une clé dans le [dictionnaire hiérarchique](/fr/reference/statements/create/dictionary/layouts/hierarchical#hierarchical-dictionaries).

**Syntaxe**

```sql theme={null}
dictGetHierarchy(dict_name, key)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `key` — Valeur de la clé. [`const String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie les parents associés à la clé. [`Array(UInt64)`](/fr/reference/data-types/array)

**Exemples**

**Obtenir la hiérarchie d’une clé**

```sql title=Query theme={null}
SELECT dictGetHierarchy('hierarchical_dictionary', 5)
```

```response title=Response theme={null}
┌─dictGetHiera⋯ionary', 5)─┐
│ [5,2,1]                  │
└──────────────────────────┘
```

<div id="dictGetIPv4">
  ## dictGetIPv4
</div>

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**

```sql theme={null}
dictGetIPv4(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetIPv4('all_types_dict', 'IPv4_value', 1)
```

```response title=Response theme={null}
┌─dictGetIPv4('all_⋯ 'IPv4_value', 1)─┐
│ 192.168.0.1                         │
└─────────────────────────────────────┘
```

<div id="dictGetIPv4OrDefault">
  ## dictGetIPv4OrDefault
</div>

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**

```sql theme={null}
dictGetIPv4OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetIPv4('all_⋯ 'IPv4_value', 1)─┐
│ 192.168.0.1                         │
└─────────────────────────────────────┘
┌─dictGetIPv4OrDefa⋯0.0.0.0'))─┐
│ 0.0.0.0                      │
└──────────────────────────────┘
```

<div id="dictGetIPv6">
  ## dictGetIPv6
</div>

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**

```sql theme={null}
dictGetIPv6(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetIPv6('all_types_dict', 'IPv6_value', 1)
```

```response title=Response theme={null}
┌─dictGetIPv6('all_⋯ 'IPv6_value', 1)─┐
│ 2001:db8:85a3::8a2e:370:7334        │
└─────────────────────────────────────┘
```

<div id="dictGetIPv6OrDefault">
  ## dictGetIPv6OrDefault
</div>

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**

```sql theme={null}
dictGetIPv6OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne correspondant à la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetIPv6('all_⋯ 'IPv6_value', 1)─┐
│ 2001:db8:85a3::8a2e:370:7334        │
└─────────────────────────────────────┘
┌─dictGetIPv6OrDefa⋯:1'::IPv6)─┐
│ ::1                          │
└──────────────────────────────┘
```

<div id="dictGetInt16">
  ## dictGetInt16
</div>

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**

```sql theme={null}
dictGetInt16(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetInt16('all_types_dict', 'Int16_value', 1)
```

```response title=Response theme={null}
┌─dictGetInt16⋯_value', 1)─┐
│                    -5000 │
└──────────────────────────┘
```

<div id="dictGetInt16OrDefault">
  ## dictGetInt16OrDefault
</div>

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**

```sql theme={null}
dictGetInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetInt16⋯_value', 1)─┐
│                    -5000 │
└──────────────────────────┘
┌─dictGetInt16⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘
```

<div id="dictGetInt32">
  ## dictGetInt32
</div>

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**

```sql theme={null}
dictGetInt32(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetInt32('all_types_dict', 'Int32_value', 1)
```

```response title=Response theme={null}
┌─dictGetInt32⋯_value', 1)─┐
│                -1000000  │
└──────────────────────────┘
```

<div id="dictGetInt32OrDefault">
  ## dictGetInt32OrDefault
</div>

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**

```sql theme={null}
dictGetInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetInt32⋯_value', 1)─┐
│                -1000000  │
└──────────────────────────┘
┌─dictGetInt32⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘
```

<div id="dictGetInt64">
  ## dictGetInt64
</div>

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**

```sql theme={null}
dictGetInt64(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetInt64('all_types_dict', 'Int64_value', 1)
```

```response title=Response theme={null}
┌─dictGetInt64⋯_value', 1)───┐
│       -9223372036854775807 │
└────────────────────────────┘
```

<div id="dictGetInt64OrDefault">
  ## dictGetInt64OrDefault
</div>

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**

```sql theme={null}
dictGetInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetInt64⋯_value', 1)─┐
│     -9223372036854775808 │
└──────────────────────────┘
┌─dictGetInt64⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘
```

<div id="dictGetInt8">
  ## dictGetInt8
</div>

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**

```sql theme={null}
dictGetInt8(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
SELECT dictGetInt8('all_types_dict', 'Int8_value', 1)
```

```response title=Response theme={null}
┌─dictGetInt8(⋯_value', 1)─┐
│                     -100 │
└──────────────────────────┘
```

<div id="dictGetInt8OrDefault">
  ## dictGetInt8OrDefault
</div>

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**

```sql theme={null}
dictGetInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetInt8(⋯_value', 1)─┐
│                     -100 │
└──────────────────────────┘
┌─dictGetInt8O⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘
```

<div id="dictGetKeys">
  ## dictGetKeys
</div>

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**

```sql theme={null}
dictGetKeys('dict_name', 'attr_name', value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Attribut à comparer. [`String`](/fr/reference/data-types/string)
* `value_expr` — Valeur à comparer à l’attribut. [`Expression`](/fr/reference/data-types/special-data-types/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**

```sql title=Query theme={null}
SELECT dictGetKeys('task_id_to_priority_dictionary', 'priority_level', 'high') AS ids;
```

```response title=Response theme={null}
┌─ids───┐
│ [4,2] │
└───────┘
```

<div id="dictGetOrDefault">
  ## dictGetOrDefault
</div>

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**

```sql theme={null}
dictGetOrDefault('dict_name', attr_names, id_expr, default_value)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_names` — Nom de la colonne du dictionnaire, ou tuple de noms de colonnes. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `id_expr` — Valeur de la clé. Expression renvoyant UInt64/Tuple(T). [`UInt64`](/fr/reference/data-types/int-uint) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `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**

```sql title=Query theme={null}
SELECT dictGetOrDefault('ext_dict_mult', 'c1', toUInt64(999), 0) AS val
```

```response title=Response theme={null}
0
```

<div id="dictGetOrNull">
  ## dictGetOrNull
</div>

Introduit dans : v21.4.0

Récupère des valeurs dans un dictionnaire et renvoie NULL si la clé est introuvable.

**Syntaxe**

```sql theme={null}
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**

```sql title=Query theme={null}
SELECT
    (number, toDate('2019-05-20')),
    dictGetOrNull('range_key_dictionary', 'value', number, toDate('2019-05-20')),
FROM system.numbers LIMIT 5 FORMAT TabSeparated;
```

```response title=Response theme={null}
(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
```

<div id="dictGetString">
  ## dictGetString
</div>

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**

```sql theme={null}
dictGetString(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetString('all_types_dict', 'String_value', 1)
```

```response title=Response theme={null}
┌─dictGetString(⋯_value', 1)─┐
│ test string                │
└────────────────────────────┘
```

<div id="dictGetStringOrDefault">
  ## dictGetStringOrDefault
</div>

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**

```sql theme={null}
dictGetStringOrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetString(⋯_value', 1)─┐
│ test string                │
└────────────────────────────┘
┌─dictGetStringO⋯ 999, 'default')─┐
│ default                         │
└─────────────────────────────────┘
```

<div id="dictGetUInt16">
  ## dictGetUInt16
</div>

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**

```sql theme={null}
dictGetUInt16(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetUInt16('all_types_dict', 'UInt16_value', 1)
```

```response title=Response theme={null}
┌─dictGetUInt1⋯_value', 1)─┐
│                     5000 │
└──────────────────────────┘
```

<div id="dictGetUInt16OrDefault">
  ## dictGetUInt16OrDefault
</div>

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**

```sql theme={null}
dictGetUInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetUInt1⋯_value', 1)─┐
│                     5000 │
└──────────────────────────┘
┌─dictGetUInt1⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘
```

<div id="dictGetUInt32">
  ## dictGetUInt32
</div>

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**

```sql theme={null}
dictGetUInt32(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetUInt32('all_types_dict', 'UInt32_value', 1)
```

```response title=Response theme={null}
┌─dictGetUInt3⋯_value', 1)─┐
│                  1000000 │
└──────────────────────────┘
```

<div id="dictGetUInt32OrDefault">
  ## dictGetUInt32OrDefault
</div>

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**

```sql theme={null}
dictGetUInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetUInt3⋯_value', 1)─┐
│                  1000000 │
└──────────────────────────┘
┌─dictGetUInt3⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘
```

<div id="dictGetUInt64">
  ## dictGetUInt64
</div>

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**

```sql theme={null}
dictGetUInt64(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT dictGetUInt64('all_types_dict', 'UInt64_value', 1)
```

```response title=Response theme={null}
┌─dictGetUInt6⋯_value', 1)─┐
│      9223372036854775807 │
└──────────────────────────┘
```

<div id="dictGetUInt64OrDefault">
  ## dictGetUInt64OrDefault
</div>

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**

```sql theme={null}
dictGetUInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetUInt6⋯_value', 1)─┐
│      9223372036854775807 │
└──────────────────────────┘
┌─dictGetUInt6⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘
```

<div id="dictGetUInt8">
  ## dictGetUInt8
</div>

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**

```sql theme={null}
dictGetUInt8(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
SELECT dictGetUInt8('all_types_dict', 'UInt8_value', 1)
```

```response title=Response theme={null}
┌─dictGetUInt8⋯_value', 1)─┐
│                      100 │
└──────────────────────────┘
```

<div id="dictGetUInt8OrDefault">
  ## dictGetUInt8OrDefault
</div>

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**

```sql theme={null}
dictGetUInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetUInt8⋯_value', 1)─┐
│                      100 │
└──────────────────────────┘
┌─dictGetUInt8⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘
```

<div id="dictGetUUID">
  ## dictGetUUID
</div>

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**

```sql theme={null}
dictGetUUID(dict_name, attr_name, id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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.

<Note>
  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.
</Note>

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
SELECT dictGetUUID('all_types_dict', 'UUID_value', 1)
```

```response title=Response theme={null}
┌─dictGetUUID(⋯_value', 1)─────────────┐
│ 123e4567-e89b-12d3-a456-426614174000 │
└──────────────────────────────────────┘
```

<div id="dictGetUUIDOrDefault">
  ## dictGetUUIDOrDefault
</div>

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**

```sql theme={null}
dictGetUUIDOrDefault(dict_name, attr_name, id_expr, default_value_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `attr_name` — Nom de la colonne du dictionnaire. [`String`](/fr/reference/data-types/string) ou [`Tuple(String)`](/fr/reference/data-types/tuple)
* `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`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)
* `default_value_expr` — Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la clé `id_expr`. [`Expression`](/fr/reference/data-types/special-data-types/expression) ou [`Tuple(T)`](/fr/reference/data-types/tuple)

**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`.

<Note>
  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.
</Note>

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictGetUUID('all_t⋯ 'UUID_value', 1)─┐
│ 550e8400-e29b-41d4-a716-446655440000 │
└──────────────────────────────────────┘
┌─dictGetUUIDOrDefa⋯000000000000'::UUID)─┐
│ 00000000-0000-0000-0000-000000000000   │
└────────────────────────────────────────┘
```

<div id="dictHas">
  ## dictHas
</div>

Introduit dans : v1.1.0

Vérifie si une clé est présente dans un dictionnaire.

**Syntaxe**

```sql theme={null}
dictHas('dict_name', id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `id_expr` — Valeur de la clé [`const String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie `1` si la clé existe, sinon `0`. [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Vérifier l'existence d'une clé dans un dictionnaire**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─dictHas('hie⋯ionary', 2)─┐
│                        1 │
└──────────────────────────┘
┌─dictHas('hie⋯ionary', 7)─┐
│                        0 │
└──────────────────────────┘
```

<div id="dictIsIn">
  ## dictIsIn
</div>

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**

```sql theme={null}
dictIsIn(dict_name, child_id_expr, ancestor_id_expr)
```

**Arguments**

* `dict_name` — Nom du dictionnaire. [`String`](/fr/reference/data-types/string)
* `child_id_expr` — Clé à vérifier. [`String`](/fr/reference/data-types/string)
* `ancestor_id_expr` — Ancêtre présumé de la clé `child_id_expr`. [`const String`](/fr/reference/data-types/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`](/fr/reference/data-types/int-uint)

**Exemples**

**Vérification de la relation hiérarchique**

```sql title=Query theme={null}
-- valid hierarchy
SELECT dictIsIn('hierarchical_dictionary', 6, 3)

-- invalid hierarchy
SELECT dictIsIn('hierarchical_dictionary', 3, 5)
```

```response title=Response theme={null}
┌─dictIsIn('hi⋯ary', 6, 3)─┐
│                        1 │
└──────────────────────────┘
┌─dictIsIn('hi⋯ary', 3, 5)─┐
│                        0 │
└──────────────────────────┘
```
