Passer au contenu principal
EntréeSortieAlias

Description

Le format Values affiche chaque ligne entre parenthèses.
  • Les lignes sont séparées par des virgules, sans virgule après la dernière.
  • Les valeurs à l’intérieur des parenthèses sont elles aussi séparées par des virgules.
  • Les nombres sont affichés au format décimal, sans guillemets.
  • Les tableaux sont affichés dans [].
  • Les chaînes, les dates et les dates avec heure sont affichées entre guillemets.
  • Les règles d’échappement et l’analyse sont similaires à celles du format TabSeparated.
Lors du formatage, aucun espace supplémentaire n’est inséré, mais lors de l’analyse, les espaces sont autorisés et ignorés (sauf à l’intérieur des valeurs de tableau, où ils ne sont pas autorisés). NULL est représenté par NULL. Jeu minimal de caractères à échapper lors de la transmission de données au format Values :
  • apostrophes
  • barres obliques inverses
C’est le format utilisé dans INSERT INTO t VALUES ..., mais vous pouvez également l’utiliser pour le formatage du résultat de la requête.

Exemple d’utilisation

Insertion de données

Le format Values est celui utilisé par INSERT, donc toute instruction INSERT ... VALUES l’utilise déjà. La clause FORMAT Values peut être indiquée explicitement, et les lignes peuvent être fournies à partir d’un flux ou d’un fichier. Chaque ligne est un tuple entre parenthèses, dont les éléments sont séparés par des virgules, les tuples eux-mêmes étant séparés par des virgules :
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]    │
└────┴──────┴─────────┘

Utilisation des expressions en entrée

Contrairement à la plupart des formats d’entrée, Values peut évaluer des expressions SQL dans chaque champ, au lieu d’accepter uniquement des littéraux. Ce comportement est contrôlé par input_format_values_interpret_expressions (activé par défaut) : lorsqu’un champ ne peut pas être lu par le parseur de streaming rapide, ClickHouse bascule vers le parseur SQL et interprète le champ comme une expression.
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 │
└───────┴───────┘

Sélection des données

Le format Values peut également être utilisé pour formater les résultats de la requête. Les nombres sont écrits sans guillemets, les tableaux entre [], et les chaînes ainsi que les dates entre apostrophes simples ; les apostrophes et les barres obliques inverses à l’intérieur des chaînes sont précédées d’une barre oblique inverse, et NULL s’écrit NULL :
Query
SELECT 1 AS a, 'O''Reilly' AS b, NULL::Nullable(String) AS c FORMAT Values;
Response
(1,'O\'Reilly',NULL)

Paramètres de format

ParamètreDescriptionPar défaut
input_format_values_interpret_expressionssi le champ n’a pas pu être analysé par le parseur de flux, exécuter le parseur SQL et essayer de l’interpréter comme une expression SQL.true
input_format_values_deduce_templates_of_expressionssi le champ n’a pas pu être analysé par le parseur de flux, exécuter le parseur SQL, déduire le modèle de l’expression SQL, essayer d’analyser toutes les lignes à l’aide de ce modèle, puis interpréter l’expression pour toutes les lignes.true
input_format_values_accurate_types_of_literalslors de l’analyse et de l’interprétation d’expressions à l’aide d’un modèle, vérifier le type réel du littéral afin d’éviter d’éventuels problèmes de dépassement de capacité et de précision.true
Dernière modification le 25 juin 2026