Para dicionários criados com consultas DDL, o parâmetro
dict_name deve ser especificado por completo, como <database>.<dict_name>. Caso contrário, será usado o banco de dados atual.Dicionários de exemplo
Os exemplos desta seção usam os dicionários a seguir. Você pode criá-los no ClickHouse para executar os exemplos das funções descritas abaixo.Dicionário de exemplo para as funções dictGet<T> e dictGet<T>OrDefault
Dicionário de exemplo para as funções dictGet<T> e dictGet<T>OrDefault
Dicionário de exemplo para dictGetAll
Dicionário de exemplo para dictGetAll
Crie uma tabela para armazenar os dados do dicionário regexp tree:Insira os dados na tabela:Crie o dicionário regexp tree:
Exemplo de dicionário com chave de intervalo
Exemplo de dicionário com chave de intervalo
Crie a tabela de entrada:Insira os dados na tabela de entrada:Crie o dicionário:
Exemplo de dicionário com chave complexa
Exemplo de dicionário com chave complexa
Crie a tabela de origem:Insira os dados na tabela de origem:Crie o dicionário:
Exemplo de dicionário hierárquico
Exemplo de dicionário hierárquico
Crie a tabela de origem:Insira os dados na tabela de origem:Crie o dicionário:
Passando chaves para funções de dicionário
O argumento de chave (id_expr) de funções como dictGet, dictGetOrDefault, dictGetOrNull e dictHas depende da chave do dicionário:
- Para um dicionário com uma chave simples (
UInt64), passe o valor da chave diretamente:
- Para um dicionário com uma chave composta (complexa) de mais de um atributo, passe os valores da chave como uma tupla:
- Quando a chave composta consiste em um único atributo, o valor da chave pode ser passado diretamente, sem precisar envolvê-lo em
tuple. Ambos os exemplos a seguir são válidos e equivalentes:
ip_trie, cuja chave é um único atributo. O endereço IP a ser pesquisado pode ser passado diretamente:
dictGet
Introduzido em: v18.16.0 Recupera valores de um dicionário.Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_names— Nome da coluna do dicionário ou tupla de nomes de colunas.StringouTuple(String)id_expr— Valor da chave. Para um dicionário com chave simples, uma expressão que retorna um valorUInt64. Para um dicionário com chave composta (complexa), uma expressão que retorna uma tupla dos valores da chave. Se a chave composta consistir em um único atributo, seu valor pode ser passado diretamente, sem envolvê-lo emtuple.UInt64ouTuple(T)
<null_value> especificado para o atributo na configuração do dicionário.
Exemplos
Obter um único atributo
Query
Response
Query
Response
dictGetAll
Introduzido em: v23.5.0 Recupera os valores do atributo de todos os nós que corresponderam a cada chave em um dicionário de árvore de expressões regulares. Além de retornar valores do tipoArray(T) em vez de T, esta função se comporta de forma semelhante a dictGet.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_names— Nome da coluna do dicionário ou tupla de nomes de colunas.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)limit— Opcional. Comprimento máximo de cada array de valores retornado. Ao truncar, os nós filhos têm precedência sobre os nós pais e, caso contrário, a ordem definida da lista para o dicionário regexp tree é respeitada. Se não for especificado, o comprimento do array é ilimitado.UInt*
id_expr para cada atributo especificado por attr_names.
Se não houver nenhuma chave correspondente a id_expr no dicionário, um array vazio será retornado.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Array(T)
Exemplos
Exemplo de uso
Query
Response
dictGetChildren
Introduzido na versão: v21.4.0 Retorna os filhos de primeiro nível como um Array de índices. É a transformação inversa de dictGetHierarchy.Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringkey— Chave a ser verificada.const String
Array(UInt64)
Exemplos
Obter os filhos de primeiro nível de um dicionário
Query
Response
dictGetDate
Introduzido na versão: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoDate, independentemente da configuração do dicionário.
Esta função não é determinística: ela pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetDateOrDefault
Introduzido em: v1.1.0 Converte um valor de atributo de dicionário para o tipo de dadosDate, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
caso contrário, retorna o valor passado no parâmetro default_value_expr.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetDateTime
Introduzido na: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoDateTime, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetDateTimeOrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoDateTime, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo da chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
caso contrário, retorna o valor informado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetDescendants
Introduzido em: v21.4.0 Retorna todos os descendentes como se a funçãodictGetChildren fosse aplicada recursivamente level vezes.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringkey— Chave a ser verificada.const Stringlevel— Chave a ser verificada. Nível da hierarquia. Selevel = 0, retorna todos os descendentes até o final.UInt8
Array(UInt64)
Exemplos
Obter os filhos de primeiro nível de um dicionário
Query
Response
dictGetFloat32
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoFloat32, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetFloat32OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoFloat32, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetFloat64
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoFloat64, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetFloat64OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoFloat64, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetHierarchy
Introduzido em: v1.1.0 Cria um array contendo todos os ancestrais de uma chave no dicionário hierárquico.Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringkey— Valor da chave.const String
Array(UInt64)
Exemplos
Obter a hierarquia de uma chave
Query
Response
dictGetIPv4
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoIPv4, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor com o tipo da chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetIPv4OrDefault
Introduzido em: v23.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoIPv4, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetIPv6
Introduzido em: v23.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoIPv6, independentemente da configuração do dicionário.
Esta função não é determinística: ela pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetIPv6OrDefault
Introduzido em: v23.1.0 Converte um valor de atributo do dicionário para o tipo de dadoIPv6, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor ou valores retornados se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
caso contrário, retorna o valor informado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt16
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoInt16, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr,
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt16OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoInt16, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
caso contrário, retorna o valor passado no parâmetro default_value_expr.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt32
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoInt32, independentemente da configuração do dicionário.
Esta função não é determinística: ela pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt32OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoInt32, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt64
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoInt64, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr,
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt64OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoInt64, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt8
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoInt8, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetInt8OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoInt8, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver nenhuma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetKeys
Introduzido em: v25.12.0 Retorna a(s) chave(s) do dicionário cujo atributo é igual ao valor especificado. Esta é a função inversa dedictGet para um único atributo.
Use a configuração max_reverse_dictionary_lookup_cache_size_bytes para limitar o tamanho do cache de busca reversa por consulta usado por dictGetKeys.
O cache armazena tuplas de chaves serializadas para cada valor de atributo, evitando varrer o dicionário novamente dentro da mesma consulta.
O cache não é persistente entre consultas. Quando o limite é atingido, as entradas são removidas com LRU.
Isso é mais eficaz com dicionários grandes quando a entrada tem baixa cardinalidade e o conjunto de trabalho cabe no cache. Defina como 0 para desabilitar o cache.
Esta função não é determinística: ela pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Atributo a ser comparado.Stringvalue_expr— Valor a ser comparado com o atributo.Expression
value_expr. Para dicionários com múltiplas chaves: um array de tuplas de chaves cujo atributo é igual a value_expr. Se não houver nenhum atributo correspondente a value_expr no dicionário, será retornado um array vazio. O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não puder ser convertido para o tipo de dado do atributo.
Exemplos
Exemplo de uso
Query
Response
dictGetOrDefault
Introduzido em: v18.16.0 Recupera valores de um dicionário, com um valor padrão caso a chave não seja encontrada.Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_names— Nome da coluna do dicionário ou tupla de nomes de colunas.StringouTuple(String)id_expr— Valor da chave. Para um dicionário com uma chave simples, uma expressão que retorna um valorUInt64. Para um dicionário com uma chave composta (complexa), uma expressão que retorna uma tupla com os valores da chave. Se a chave composta consistir em um único atributo, seu valor pode ser passado diretamente, sem envolvê-lo emtuple.UInt64ouTuple(T)default_value— Valor padrão retornado se a chave não for encontrada. O tipo deve corresponder ao tipo de dado do atributo.
id_expr se a chave for encontrada.
Se a chave não for encontrada, retorna o default_value fornecido.
Exemplos
Obter valor com valor padrão
Query
Response
dictGetOrNull
Introduzido em: v21.4.0 Obtém valores de um Dicionário, retornando NULL se a chave não for encontrada.Esta função não é determinística: ela pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário. Literal de String. -attr_name— Nome da coluna a ser obtida. Literal de String. -id_expr— Valor da chave. expressão que retorna um valor do tipo de chave do dicionário.
id_expr se a chave for encontrada.
Se a chave não for encontrada, retorna NULL.
Exemplos
Exemplo usando o dicionário com chave de intervalo
Query
Response
dictGetRoot
Introduzido em: v26.7.0 Retorna o ancestral mais alto (a raiz) de uma chave em um dicionário hierárquico. Este é um equivalente prático a obter o último elemento do array retornado por dictGetHierarchy, ou seja,dictGetHierarchy(dict_name, key)[-1].
Se a chave for ela própria um nó de nível superior da hierarquia, a própria chave será retornada. Se a chave não existir no dicionário, 0 será retornado.
Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
UInt64
Exemplos
Obter a raiz de uma chave
Query
Response
dictGetString
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoString, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetStringOrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo do dicionário para o tipo de dadoString, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
caso contrário, retorna o valor informado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt16
Introduzido em: v1.1.0 Converte um valor de atributo do dicionário para o tipo de dadoUInt16, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr,
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir analisar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt16OrDefault
Introduzido em: v1.1.0 Converte um valor de atributo de dicionário para o tipo de dadoUInt16, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt32
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUInt32, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt32OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUInt32, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr,
do contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt64
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUInt64, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt64OrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUInt64, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor passado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt8
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUInt8, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr,
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUInt8OrDefault
Introduzido em: v1.1.0 Converte um valor de atributo do dicionário para o tipo de dadoUInt8, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido se a chave não for encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo da chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor informado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUUID
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUUID, independentemente da configuração do dicionário.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Uma expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)
id_expr;
caso contrário, retorna o conteúdo do elemento <null_value> especificado para o atributo na configuração do dicionário.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictGetUUIDOrDefault
Introduzido em: v1.1.0 Converte o valor de um atributo de dicionário para o tipo de dadoUUID, independentemente da configuração do dicionário, ou retorna o valor padrão fornecido caso a chave não seja encontrada.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringattr_name— Nome da coluna do dicionário.StringouTuple(String)id_expr— Valor da chave. Expressão que retorna um valor do tipo de chave do dicionário ou um valor de tupla (dependendo da configuração do dicionário).ExpressionouTuple(T)default_value_expr— Valor(es) retornado(s) se o dicionário não contiver uma linha com a chaveid_expr.ExpressionouTuple(T)
id_expr;
caso contrário, retorna o valor informado no parâmetro default_value_expr.
O ClickHouse lança uma exceção se não conseguir interpretar o valor do atributo ou se o valor não corresponder ao tipo de dado do atributo.
Query
Response
dictHas
Introduzido em: v1.1.0 Verifica se uma chave está presente em um dicionário.Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringid_expr— Valor da chaveconst String
1 se a chave existir; caso contrário, 0. UInt8
Exemplos
Verificar a existência de uma chave em um dicionário
Query
Response
dictIsIn
Introduzido em: v1.1.0 Verifica o ancestral de uma chave ao longo de toda a cadeia hierárquica do dicionário.Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
dict_name— Nome do dicionário.Stringchild_id_expr— Chave a ser verificada.Stringancestor_id_expr— Suposto ancestral da chavechild_id_expr.const String
0 se child_id_expr não for filho de ancestor_id_expr e 1 se child_id_expr for filho de ancestor_id_expr ou se child_id_expr for o próprio ancestor_id_expr. UInt8
Exemplos
Verificar a relação hierárquica
Query
Response