- Kategorien:
VALUES¶
In der SELECT-Anweisung ermöglicht die Unterklausel VALUES der FROM-Klausel die Angabe einer Menge von Konstanten zur Bildung einer endlichen Menge von Zeilen.
(Informationen zur VALUES
-Klausel in der INSERT
-Anweisung finden Sie in der Dokumentation für die INSERT-Anweisung.)
Syntax¶
SELECT ...
FROM ( VALUES ( <expr> [ , <expr> [ , ... ] ] ) [ , ( ... ) ] ) [ [ AS ] <table_alias> [ ( <column_alias> [, ... ] ) ] ]
[ ... ]
Tabellenalias
Ein optionaler Alias kann verwendet werden, um der Gruppe von Zeilen einen Namen zu geben, als wäre die Gruppe von Zeilen eine Tabelle.
Spaltenalias
Optionale Spaltenaliasse können verwendet werden, um den Spalten Namen zu geben.
Ausdruck
Jeder Ausdruck muss eine Konstante sein oder ein Ausdruck, die bzw. der bei der Kompilierung der SQL-Anweisung als eine Konstante ausgewertet werden kann.
Die meisten einfachen arithmetischen Ausdrücke und Zeichenfolgenfunktionen können zur Kompilierungszeit ausgewertet werden, die meisten anderen Ausdrücke jedoch nicht.
Nutzungshinweise¶
Beispiele¶
Die VALUES-Klausel hilft dabei, einen feste, bekannte Menge von Zeilen zu generieren:
SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')); +---------+---------+ | COLUMN1 | COLUMN2 | |---------+---------| | 1 | one | | 2 | two | | 3 | three | +---------+---------+ SELECT column1, $2 FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')); +---------+-------+ | COLUMN1 | $2 | |---------+-------| | 1 | one | | 2 | two | | 3 | three | +---------+-------+Beachten Sie, dass die Werte entweder über die Spalte „name“ (implizit) oder über die Spaltenposition referenziert werden können.
Wenn Sie in Ihrer Abfrage mehrere VALUES-Klauseln verwenden, können Sie einen Alias verwenden, um zwischen ihnen zu unterscheiden. Beispiel:
SELECT v1.$2, v2.$2 FROM (VALUES (1, 'one'), (2, 'two')) AS v1 INNER JOIN (VALUES (1, 'One'), (3, 'three')) AS v2 WHERE v2.$1 = v1.$1;
Außerdem können Sie Aliasse für die Spaltennamen angeben:
SELECT c1, c2 FROM (VALUES (1, 'one'), (2, 'two')) AS v1 (c1, c2);