Pular para o conteúdo principal
EntradaSaídaAlias

Descrição

O formato Values imprime cada linha entre colchetes.
  • As linhas são separadas por vírgulas, sem vírgula após a última linha.
  • Os valores dentro dos colchetes também são separados por vírgulas.
  • Os números são exibidos em formato decimal, sem aspas.
  • Arrays são exibidos em [].
  • Strings, datas e valores de data e hora são exibidos entre aspas.
  • As regras de escape e parsing são semelhantes às do formato TabSeparated.
Durante a formatação, espaços extras não são inseridos, mas, durante o parsing, eles são permitidos e ignorados (exceto espaços dentro de valores de array, que não são permitidos). NULL é representado como NULL. O conjunto mínimo de caracteres que você precisa escapar ao passar dados no formato Values:
  • aspas simples
  • barras invertidas
Este é o formato usado em INSERT INTO t VALUES ..., mas você também pode usá-lo para formatar resultados de consulta.

Exemplo de uso

Inserindo dados

O formato Values é o usado por INSERT, então qualquer instrução INSERT ... VALUES já o utiliza. A cláusula FORMAT Values pode ser especificada explicitamente, e as linhas podem ser fornecidas por um fluxo ou por um arquivo. Cada linha é uma tupla entre parênteses, com os valores separados por vírgulas, e as próprias tuplas também separadas por vírgulas:
Query
CREATE TABLE t (id UInt32, name String, values Array(UInt32)) ENGINE = Memory;

INSERT INTO t FORMAT Values (1, 'a', [10, 20]), (2, 'b', [30]);

SELECT * FROM t ORDER BY id;
Response
┌─id─┬─name─┬─values──┐
│  1 │ a    │ [10,20] │
│  2 │ b    │ [30]    │
└────┴──────┴─────────┘

Usando expressões na entrada

Ao contrário da maioria dos formatos de entrada, Values pode avaliar expressões SQL em cada campo, em vez de aceitar apenas literais. Isso é controlado por input_format_values_interpret_expressions (ativado por padrão): quando um campo não pode ser lido pelo parser rápido de streaming, o ClickHouse recorre ao parser SQL e interpreta o campo como uma expressão.
Query
CREATE TABLE prices (item String, total UInt32) ENGINE = Memory;

INSERT INTO prices FORMAT Values ('apple', 3 * 4), ('pear', length('hello') + 10);

SELECT * FROM prices ORDER BY total;
Response
┌─item──┬─total─┐
│ apple │    12 │
│ pear  │    15 │
└───────┴───────┘

Seleção de dados

O formato Values também pode ser usado para formatar resultados de consulta. Números são escritos sem aspas, arrays em [] e strings e datas entre aspas simples; aspas simples e barras invertidas dentro de strings são escapadas com uma barra invertida, e NULL é escrito como NULL:
Query
SELECT 1 AS a, 'O''Reilly' AS b, NULL::Nullable(String) AS c FORMAT Values;
Response
(1,'O\'Reilly',NULL)

Configurações de formato

ConfiguraçãoDescriçãoPadrão
input_format_values_interpret_expressionsse o campo não puder ser analisado pelo parser de streaming, execute o parser SQL e tente interpretá-lo como uma expressão SQL.true
input_format_values_deduce_templates_of_expressionsse o campo não puder ser analisado pelo parser de streaming, execute o parser SQL, deduza o modelo da expressão SQL, tente analisar todas as linhas usando esse modelo e, em seguida, interprete a expressão para todas as linhas.true
input_format_values_accurate_types_of_literalsao analisar e interpretar expressões usando um modelo, verifique o tipo real do literal para evitar possíveis problemas de overflow e precisão.true
Última modificação em 25 de junho de 2026