7.7. Listes VALUES
VALUES fournit une façon de générer une
table de « constantes » qui peut
être utilisé dans une requête sans avoir à réellement créer et
peupler une table sur disque. La syntaxe est
VALUES ( expression [, ...] ) [, ...]
Chaque liste d'expressions entre parenthèses génère une ligne dans la
table. Les listes doivent toutes avoir le même nombre d'éléments
(c'est-à-dire une liste de colonnes dans la table), et les entrées
correspondantes dans chaque liste doivent avoir des types
compatibles. Le type réel affecté à chaque colonne du résultat est
déterminé en utilisant les mêmes règles que pour UNION (voir Section 10.5,
« Constructions UNION, CASE et constructions relatives »).
Voici un exemple,
VALUES (1, 'un'), (2, 'deux'), (3, 'trois');
renverra une table de deux colonnes et trois lignes. C'est équivalent
à
SELECT 1 AS column1, 'un' AS column2
UNION ALL
SELECT 2, 'deux'
UNION ALL
SELECT 3, 'trois';
Par défaut, PostgreSQL™
affecte les noms column1, column2, etc. aux colonnes d'une table VALUES. Les noms des colonnes ne sont pas spécifiés
par le standard SQL et les différents SGBD le font de façon
différente. Donc, il est généralement mieux de surcharger les noms
par défaut avec une liste d'alias.
Syntaxiquement, VALUES suivi par une liste
d'expressions est traité de la même façon que
SELECT liste_select FROM expression_table
et peut apparaître partout où un SELECT le
peut. Par exemple, vous pouvez l'utiliser comme élément d'un
UNION ou y attacher une
spécification de tri
(ORDER BY, LIMIT et/ou
OFFSET). VALUES est
habituellement utilisée comme source de données dans une commande
INSERT
command, mais
aussi dans une sous-requête.
Pour plus d'informations, voir VALUES.