Saltar al contenido principal
Para los diccionarios creados mediante consultas DDL, el parámetro dict_name debe especificarse por completo, como <database>.<dict_name>. De lo contrario, se usa la base de datos actual.
Para obtener información sobre cómo conectar y configurar diccionarios, consulta Diccionarios.

Diccionarios de ejemplo

Los ejemplos de esta sección usan los siguientes diccionarios. Puede crearlos en ClickHouse para ejecutar los ejemplos de las funciones que se describen a continuación.
-- Crear una tabla con todos los tipos de datos requeridos
CREATE TABLE all_types_test (
    `id` UInt32,
    
    -- Tipo String
    `String_value` String,
    
    -- Tipos enteros sin signo
    `UInt8_value` UInt8,
    `UInt16_value` UInt16,
    `UInt32_value` UInt32,
    `UInt64_value` UInt64,
    
    -- Tipos enteros con signo
    `Int8_value` Int8,
    `Int16_value` Int16,
    `Int32_value` Int32,
    `Int64_value` Int64,
    
    -- Tipos de punto flotante
    `Float32_value` Float32,
    `Float64_value` Float64,
    
    -- Tipos de fecha y hora
    `Date_value` Date,
    `DateTime_value` DateTime,
    
    -- Tipos de red
    `IPv4_value` IPv4,
    `IPv6_value` IPv6,
    
    -- Tipo UUID
    `UUID_value` UUID
) ENGINE = MergeTree() 
ORDER BY id;
-- Insertar datos de prueba
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
)
-- Crear diccionario
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);
Cree una tabla para almacenar los datos del diccionario regexp tree:
CREATE TABLE regexp_os(
    id UInt64,
    parent_id UInt64,
    regexp String,
    keys Array(String),
    values Array(String)
)
ENGINE = Memory;
Inserte datos en la tabla:
INSERT INTO regexp_os 
SELECT *
FROM s3(
    'https://datasets-documentation.s3.eu-west-3.amazonaws.com/' ||
    'user_agent_regex/regexp_os.csv'
);
Cree el diccionario 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);
Cree la tabla de entrada:
CREATE TABLE range_key_dictionary_source_table
(
    key UInt64,
    start_date Date,
    end_date Date,
    value String,
    value_nullable Nullable(String)
)
ENGINE = TinyLog();
Inserte los datos en la tabla de entrada:
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');
Cree el diccionario:
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);
Cree la tabla de origen:
CREATE TABLE dict_mult_source
(
id UInt32,
c1 UInt32,
c2 String
) ENGINE = Memory;
Inserte los datos en la tabla de origen:
INSERT INTO dict_mult_source VALUES
(1, 1, '1'),
(2, 2, '2'),
(3, 3, '3');
Cree el diccionario:
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);
Cree la tabla de origen:
CREATE TABLE hierarchy_source
(
  id UInt64,
  parent_id UInt64,
  name String
) ENGINE = Memory;
Inserte los datos en la tabla de origen:
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 (Raíz)
-- └── 1 (Nivel 1 - Nodo 1)
--     ├── 2 (Nivel 2 - Nodo 2)
--     │   ├── 4 (Nivel 3 - Nodo 4)
--     │   └── 5 (Nivel 3 - Nodo 5)
--     └── 3 (Nivel 2 - Nodo 3)
--         └── 6 (Nivel 3 - Nodo 6)
Cree el diccionario:
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

Introducido en: v18.16.0 Obtiene valores de un diccionario. Sintaxis
dictGet('dict_name', attr_names, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_names — Nombre de la columna del diccionario o tupla de nombres de columnas. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve UInt64/Tuple(T). UInt64 o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr si se encuentra la clave. Si no se encuentra la clave, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario. Ejemplos Obtener un único atributo
Query
SELECT dictGet('ext_dict_test', 'c1', toUInt64(1)) AS val
Response
1
Múltiples atributos
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

Introducido en: v23.5.0 Convierte el valor de un atributo del diccionario al tipo de dato All, independientemente de la configuración del diccionario. Sintaxis
dictGetAll(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT
    'Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36' AS user_agent,

    -- Esto coincidirá con TODOS los patrones aplicables
    dictGetAll('regexp_tree', 'os_replacement', 'Mozilla/5.0 (Linux; Android 12; SM-G998B) Mobile Safari/537.36') AS all_matches,

    -- Esto devuelve solo la primera coincidencia
    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

Introducido en: v21.4.0 Devuelve los hijos de primer nivel como un array de índices. Es la transformación inversa de dictGetHierarchy. Sintaxis
dictGetChildren(dict_name, key)
Argumentos
  • dict_name — Nombre del diccionario. String
  • key — Clave que se va a comprobar. const String
Valor devuelto Devuelve los hijos de primer nivel de la clave. Array(UInt64) Ejemplos Obtener los hijos de primer nivel de un diccionario
Query
SELECT dictGetChildren('hierarchical_dictionary', 2);
Response
┌─dictGetChild⋯ionary', 2)─┐
│ [4,5]                    │
└──────────────────────────┘

dictGetDate

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato Date, independientemente de la configuración del diccionario. Sintaxis
dictGetDate(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; en caso contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse puede lanzar una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetDate('all_types_dict', 'Date_value', 1)
Response
┌─dictGetDate(⋯_value', 1)─┐
│               2020-01-01 │
└──────────────────────────┘

dictGetDateOrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato Date, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetDateOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores que se devuelven si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede analizar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetDate('all_types_dict', 'Date_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado
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

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato DateTime, independientemente de la configuración del diccionario. Sintaxis
dictGetDateTime(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede analizar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetDateTime('all_types_dict', 'DateTime_value', 1)
Response
┌─dictGetDateT⋯_value', 1)─┐
│      2024-01-15 10:30:00 │
└──────────────────────────┘

dictGetDateTimeOrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato DateTime, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetDateTimeOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor(es) que se devuelve(n) si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el valor proporcionado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetDateTime('all_types_dict', 'DateTime_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado
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

Introducido en: v21.4.0 Devuelve todos los descendientes como si la función dictGetChildren se aplicara recursivamente level veces. Sintaxis
dictGetDescendants(dict_name, key, level)
Argumentos
  • dict_name — Nombre del diccionario. String
  • key — Clave que se va a comprobar. const String
  • level — Nivel de jerarquía de la clave que se va a comprobar. Si level = 0, devuelve todos los descendientes hasta el final. UInt8
Valor devuelto Devuelve los descendientes de la clave. Array(UInt64) Ejemplos Obtener los hijos de primer nivel de un diccionario
Query
-- considere el siguiente diccionario jerárquico:
-- 0 (Raíz)
-- └── 1 (Nivel 1 - Nodo 1)
--     ├── 2 (Nivel 2 - Nodo 2)
--     │   ├── 4 (Nivel 3 - Nodo 4)
--     │   └── 5 (Nivel 3 - Nodo 5)
--     └── 3 (Nivel 2 - Nodo 3)
--         └── 6 (Nivel 3 - Nodo 6)

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

dictGetFloat32

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato Float32, independientemente de la configuración del diccionario. Sintaxis
dictGetFloat32(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetFloat32('all_types_dict', 'Float32_value', 1)
Response
┌─dictGetFloat⋯_value', 1)─┐
│               -123.123   │
└──────────────────────────┘

dictGetFloat32OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de datos Float32, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetFloat32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores que se devuelven si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetFloat32('all_types_dict', 'Float32_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (-1.0)
SELECT dictGetFloat32OrDefault('all_types_dict', 'Float32_value', 999, -1.0);
Response
┌─dictGetFloat⋯_value', 1)─┐
│                   123.45 │
└──────────────────────────┘
┌─dictGetFloat⋯e', 999, -1)─┐
│                       -1  │
└───────────────────────────┘

dictGetFloat64

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de datos Float64, independientemente de la configuración del diccionario. Sintaxis
dictGetFloat64(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetFloat64('all_types_dict', 'Float64_value', 1)
Response
┌─dictGetFloat⋯_value', 1)─┐
│                 -123.123 │
└──────────────────────────┘

dictGetFloat64OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato Float64, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetFloat64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetFloat64('all_types_dict', 'Float64_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (nan)
SELECT dictGetFloat64OrDefault('all_types_dict', 'Float64_value', 999, nan);
Response
┌─dictGetFloat⋯_value', 1)─┐
│            987654.123456 │
└──────────────────────────┘
┌─dictGetFloat⋯, 999, nan)─┐
│                      nan │
└──────────────────────────┘

dictGetHierarchy

Introducido en: v1.1.0 Crea un array que contiene todos los ancestros de una clave en el diccionario jerárquico. Sintaxis
dictGetHierarchy(dict_name, key)
Argumentos Valor devuelto Devuelve los padres para la clave. Array(UInt64) Ejemplos Obtener la jerarquía para una clave
Query
SELECT dictGetHierarchy('hierarchical_dictionary', 5)
Response
┌─dictGetHiera⋯ionary', 5)─┐
│ [5,2,1]                  │
└──────────────────────────┘

dictGetIPv4

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato IPv4, independientemente de la configuración del diccionario. Sintaxis
dictGetIPv4(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetIPv4('all_types_dict', 'IPv4_value', 1)
Response
┌─dictGetIPv4('all_⋯ 'IPv4_value', 1)─┐
│ 192.168.0.1                         │
└─────────────────────────────────────┘

dictGetIPv4OrDefault

Introducido en: v23.1.0 Convierte el valor de un atributo de diccionario al tipo de dato IPv4, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetIPv4OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetIPv4('all_types_dict', 'IPv4_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado
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

Introducido en: v23.1.0 Convierte el valor de un atributo de diccionario al tipo de dato IPv6, independientemente de la configuración del diccionario. Sintaxis
dictGetIPv6(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; en caso contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetIPv6('all_types_dict', 'IPv6_value', 1)
Response
┌─dictGetIPv6('all_⋯ 'IPv6_value', 1)─┐
│ 2001:db8:85a3::8a2e:370:7334        │
└─────────────────────────────────────┘

dictGetIPv6OrDefault

Introducido en: v23.1.0 Convierte el valor de un atributo de diccionario al tipo de dato IPv6, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetIPv6OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetIPv6('all_types_dict', 'IPv6_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado
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

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato Int16, independientemente de la configuración del diccionario. Sintaxis
dictGetInt16(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o una tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetInt16('all_types_dict', 'Int16_value', 1)
Response
┌─dictGetInt16⋯_value', 1)─┐
│                    -5000 │
└──────────────────────────┘

dictGetInt16OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato Int16, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor proporcionado en el parámetro default_value_expr.
ClickHouse puede lanzar una excepción si no puede interpretar el valor del atributo o si este no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetInt16('all_types_dict', 'Int16_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (-1)
SELECT dictGetInt16OrDefault('all_types_dict', 'Int16_value', 999, -1);
Response
┌─dictGetInt16⋯_value', 1)─┐
│                    -5000 │
└──────────────────────────┘
┌─dictGetInt16⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetInt32

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato Int32, independientemente de la configuración del diccionario. Sintaxis
dictGetInt32(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; en caso contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetInt32('all_types_dict', 'Int32_value', 1)
Response
┌─dictGetInt32⋯_value', 1)─┐
│                -1000000  │
└──────────────────────────┘

dictGetInt32OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato Int32, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de datos del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetInt32('all_types_dict', 'Int32_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (-1)
SELECT dictGetInt32OrDefault('all_types_dict', 'Int32_value', 999, -1);
Response
┌─dictGetInt32⋯_value', 1)─┐
│                -1000000  │
└──────────────────────────┘
┌─dictGetInt32⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetInt64

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato Int64, independientemente de la configuración del diccionario. Sintaxis
dictGetInt64(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetInt64('all_types_dict', 'Int64_value', 1)
Response
┌─dictGetInt64⋯_value', 1)───┐
│       -9223372036854775807 │
└────────────────────────────┘

dictGetInt64OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato Int64, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; en caso contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetInt64('all_types_dict', 'Int64_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (-1)
SELECT dictGetInt64OrDefault('all_types_dict', 'Int64_value', 999, -1);
Response
┌─dictGetInt64⋯_value', 1)─┐
│     -9223372036854775808 │
└──────────────────────────┘
┌─dictGetInt64⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetInt8

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato Int8, independientemente de la configuración del diccionario. Sintaxis
dictGetInt8(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para ese atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetInt8('all_types_dict', 'Int8_value', 1)
Response
┌─dictGetInt8(⋯_value', 1)─┐
│                     -100 │
└──────────────────────────┘

dictGetInt8OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato Int8, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetInt8('all_types_dict', 'Int8_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (-1)
SELECT dictGetInt8OrDefault('all_types_dict', 'Int8_value', 999, -1);
Response
┌─dictGetInt8(⋯_value', 1)─┐
│                     -100 │
└──────────────────────────┘
┌─dictGetInt8O⋯', 999, -1)─┐
│                       -1 │
└──────────────────────────┘

dictGetKeys

Introducido en: v25.12.0 Devuelve la(s) clave(s) del diccionario cuyo atributo coincide con el valor especificado. Es la inversa de la función dictGet para un único atributo. Use la configuración max_reverse_dictionary_lookup_cache_size_bytes para limitar el tamaño de la caché de búsqueda inversa por consulta que utiliza dictGetKeys. La caché almacena tuplas de claves serializadas para cada valor de atributo, a fin de evitar volver a recorrer el diccionario dentro de la misma consulta. La caché no es persistente entre consultas. Cuando se alcanza el límite, las entradas se eliminan mediante LRU. Esto resulta más eficaz con diccionarios grandes cuando la entrada tiene baja cardinalidad y el conjunto de trabajo cabe en la caché. Establézcalo en 0 para desactivar la caché. Sintaxis
dictGetKeys('dict_name', 'attr_name', value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Atributo con el que debe coincidir. String
  • value_expr — Valor que debe coincidir con el atributo. Expression
Valor devuelto Para diccionarios de clave única: un array de claves cuyo atributo es igual a value_expr. Para diccionarios de varias claves: un array de tuplas de claves cuyo atributo es igual a value_expr. Si no hay ningún atributo correspondiente a value_expr en el diccionario, se devuelve un array vacío. ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no puede convertirse al tipo de dato del atributo. Ejemplos Uso de ejemplo
Query
SELECT dictGetKeys('task_id_to_priority_dictionary', 'priority_level', 'high') AS ids;
Response
┌─ids───┐
│ [4,2] │
└───────┘

dictGetOrDefault

Introducido en: v18.16.0 Obtiene valores de un diccionario y devuelve un valor predeterminado si no se encuentra la clave. Sintaxis
dictGetOrDefault('dict_name', attr_names, id_expr, default_value)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_names — Nombre de la columna del diccionario o tupla de nombres de columna. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve UInt64/Tuple(T). UInt64 o Tuple(T)
  • default_value — Valor predeterminado que se devuelve si no se encuentra la clave. El tipo debe coincidir con el tipo de dato del atributo.
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr si se encuentra la clave. Si no se encuentra la clave, devuelve el default_value proporcionado. Ejemplos Obtener un valor con valor predeterminado
Query
SELECT dictGetOrDefault('ext_dict_mult', 'c1', toUInt64(999), 0) AS val
Response
0

dictGetOrNull

Introducido en: v21.4.0 Obtiene valores de un diccionario y devuelve NULL si la clave no se encuentra. Sintaxis
dictGetOrNull('dict_name', 'attr_name', id_expr)
Argumentos
  • dict_name — Nombre del diccionario. Literal de cadena. - attr_name — Nombre de la columna que se quiere obtener. Literal de cadena. - id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de la clave del diccionario.
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr si se encuentra la clave. Si no se encuentra la clave, devuelve NULL. Ejemplos Ejemplo con el diccionario con clave de rango
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

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato String, independientemente de la configuración del diccionario. Sintaxis
dictGetString(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetString('all_types_dict', 'String_value', 1)
Response
┌─dictGetString(⋯_value', 1)─┐
│ test string                │
└────────────────────────────┘

dictGetStringOrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato String, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetStringOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetString('all_types_dict', 'String_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado
SELECT dictGetStringOrDefault('all_types_dict', 'String_value', 999, 'default');
Response
┌─dictGetString(⋯_value', 1)─┐
│ test string                │
└────────────────────────────┘
┌─dictGetStringO⋯ 999, 'default')─┐
│ default                         │
└─────────────────────────────────┘

dictGetUInt16

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato UInt16, independientemente de la configuración del diccionario. Sintaxis
dictGetUInt16(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario que corresponde a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetUInt16('all_types_dict', 'UInt16_value', 1)
Response
┌─dictGetUInt1⋯_value', 1)─┐
│                     5000 │
└──────────────────────────┘

dictGetUInt16OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato UInt16, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetUInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; en caso contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetUInt16('all_types_dict', 'UInt16_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (0)
SELECT dictGetUInt16OrDefault('all_types_dict', 'UInt16_value', 999, 0);
Response
┌─dictGetUInt1⋯_value', 1)─┐
│                     5000 │
└──────────────────────────┘
┌─dictGetUInt1⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUInt32

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato UInt32, independientemente de la configuración del diccionario. Sintaxis
dictGetUInt32(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetUInt32('all_types_dict', 'UInt32_value', 1)
Response
┌─dictGetUInt3⋯_value', 1)─┐
│                  1000000 │
└──────────────────────────┘

dictGetUInt32OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato UInt32, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetUInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores que se devuelven si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetUInt32('all_types_dict', 'UInt32_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (0)
SELECT dictGetUInt32OrDefault('all_types_dict', 'UInt32_value', 999, 0);
Response
┌─dictGetUInt3⋯_value', 1)─┐
│                  1000000 │
└──────────────────────────┘
┌─dictGetUInt3⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUInt64

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato UInt64, independientemente de la configuración del diccionario. Sintaxis
dictGetUInt64(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetUInt64('all_types_dict', 'UInt64_value', 1)
Response
┌─dictGetUInt6⋯_value', 1)─┐
│      9223372036854775807 │
└──────────────────────────┘

dictGetUInt64OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato UInt64, independientemente de la configuración del diccionario, o devuelve el valor predeterminado indicado si no se encuentra la clave. Sintaxis
dictGetUInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores que se devuelven si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; en caso contrario, devuelve el valor pasado como parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de datos del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetUInt64('all_types_dict', 'UInt64_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (0)
SELECT dictGetUInt64OrDefault('all_types_dict', 'UInt64_value', 999, 0);
Response
┌─dictGetUInt6⋯_value', 1)─┐
│      9223372036854775807 │
└──────────────────────────┘
┌─dictGetUInt6⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUInt8

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato UInt8, independientemente de la configuración del diccionario. Sintaxis
dictGetUInt8(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; en caso contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetUInt8('all_types_dict', 'UInt8_value', 1)
Response
┌─dictGetUInt8⋯_value', 1)─┐
│                      100 │
└──────────────────────────┘

dictGetUInt8OrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de un diccionario al tipo de dato UInt8, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetUInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores devueltos si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetUInt8('all_types_dict', 'UInt8_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado (0)
SELECT dictGetUInt8OrDefault('all_types_dict', 'UInt8_value', 999, 0);
Response
┌─dictGetUInt8⋯_value', 1)─┐
│                      100 │
└──────────────────────────┘
┌─dictGetUInt8⋯e', 999, 0)─┐
│                        0 │
└──────────────────────────┘

dictGetUUID

Introducido en: v1.1.0 Convierte el valor de un atributo del diccionario al tipo de dato UUID, independientemente de la configuración del diccionario. Sintaxis
dictGetUUID(dict_name, attr_name, id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Una expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el contenido del elemento <null_value> especificado para el atributo en la configuración del diccionario.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de datos del atributo.
Ejemplos Ejemplo de uso
Query
SELECT dictGetUUID('all_types_dict', 'UUID_value', 1)
Response
┌─dictGetUUID(⋯_value', 1)─────────────┐
│ 123e4567-e89b-12d3-a456-426614174000 │
└──────────────────────────────────────┘

dictGetUUIDOrDefault

Introducido en: v1.1.0 Convierte el valor de un atributo de diccionario al tipo de dato UUID, independientemente de la configuración del diccionario, o devuelve el valor predeterminado proporcionado si no se encuentra la clave. Sintaxis
dictGetUUIDOrDefault(dict_name, attr_name, id_expr, default_value_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • attr_name — Nombre de la columna del diccionario. String o Tuple(String)
  • id_expr — Valor de la clave. Expresión que devuelve un valor del tipo de clave del diccionario o un valor de tupla (según la configuración del diccionario). Expression o Tuple(T)
  • default_value_expr — Valor o valores que se devuelven si el diccionario no contiene una fila con la clave id_expr. Expression o Tuple(T)
Valor devuelto Devuelve el valor del atributo del diccionario correspondiente a id_expr; de lo contrario, devuelve el valor pasado en el parámetro default_value_expr.
ClickHouse lanza una excepción si no puede interpretar el valor del atributo o si el valor no coincide con el tipo de dato del atributo.
Ejemplos Ejemplo de uso
Query
-- para la clave que existe
SELECT dictGetUUID('all_types_dict', 'UUID_value', 1);

-- para la clave que no existe, devuelve el valor predeterminado proporcionado
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

Introducido en: v1.1.0 Comprueba si una clave está presente en un diccionario. Sintaxis
dictHas('dict_name', id_expr)
Argumentos Valor devuelto Devuelve 1 si la clave existe; de lo contrario, 0. UInt8 Ejemplos Comprobar si existe una clave en un diccionario
Query
-- considere el siguiente diccionario jerárquico:
-- 0 (Raíz)
-- └── 1 (Nivel 1 - Nodo 1)
--     ├── 2 (Nivel 2 - Nodo 2)
--     │   ├── 4 (Nivel 3 - Nodo 4)
--     │   └── 5 (Nivel 3 - Nodo 5)
--     └── 3 (Nivel 2 - Nodo 3)
--         └── 6 (Nivel 3 - Nodo 6)

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

dictIsIn

Introducido en: v1.1.0 Comprueba el ancestro de una clave en toda la cadena jerárquica del diccionario. Sintaxis
dictIsIn(dict_name, child_id_expr, ancestor_id_expr)
Argumentos
  • dict_name — Nombre del diccionario. String
  • child_id_expr — Clave que se debe comprobar. String
  • ancestor_id_expr — Supuesto ancestro de la clave child_id_expr. const String
Valor devuelto Devuelve 0 si child_id_expr no es hijo de ancestor_id_expr, y 1 si child_id_expr es hijo de ancestor_id_expr o si child_id_expr es igual a ancestor_id_expr. UInt8 Ejemplos Comprobar la relación jerárquica
Query
-- jerarquía válida
SELECT dictIsIn('hierarchical_dictionary', 6, 3)

-- jerarquía no válida
SELECT dictIsIn('hierarchical_dictionary', 3, 5)
Response
┌─dictIsIn('hi⋯ary', 6, 3)─┐
│                        1 │
└──────────────────────────┘
┌─dictIsIn('hi⋯ary', 3, 5)─┐
│                        0 │
└──────────────────────────┘
Última modificación el 10 de junio de 2026