- 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¶
Parameter¶
exprJeder 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.
table_aliasEin optionaler Alias, um der Gruppe von Zeilen einen Namen zu geben, als wäre die Gruppe von Zeilen eine Tabelle.
column_aliasOptionale Spaltenaliasse können die Spaltennamen angeben.
Nutzungshinweise¶
In einer FROM-Klausel darf eine VALUES-Klausel nicht das Schlüsselwort
DEFAULTenthalten. Diese Beschränkung steht im Gegensatz zu einer VALUES-Klausel in einer INSERT-Anweisung, die die Verwendung vonDEFAULTunterstützt. Beispiel:INSERT INTO table VALUES (10, DEFAULT, 'Name') ....Wenn eine VALUES-Klausel mehrere Werte unterschiedlicher Datentypen für dieselbe Spalte enthält, bestimmt Snowflake einen gemeinsamen Datentyp, der alle Werte umfassen kann, und konvertiert jeden Wert implizit in diesen gemeinsamen Typ. Wenn Ihnen diese Konvertierung nicht bewusst ist, kann sie zu unerwarteten Ergebnissen oder Fehlern führen.
Um unerwartete Koersion zu vermeiden, wandeln Sie (CAST) jeden Wert in den gewünschten Typ um, teilen Sie die Werte in mehrere SQL-Anweisungen auf oder stellen sicher, dass alle Werte in einer Spalte denselben Typ haben.
Numerisches Beispiel
Wenn sich numerische Werte in derselben Spalte in der Skalierung oder Genauigkeit erheblich unterscheiden, kann Snowflake einen
out of range-Fehler zurückgeben, da ein Wert nicht in den ermittelten allgemeinen numerischen Typ passt.Insbesondere für numerische Werte können Sie auch Werte als Textzeichenfolgen in Anführungszeichen angeben und diese dann bei Bedarf in numerische Werte konvertieren.
**Beispiele für Zeitstempel*
Wenn Zeitstempelwerte verschiedener Typen in derselben Spalte angezeigt werden, konvertiert Snowflake alle Werte in einen gemeinsamen Zeitstempeltyp. Im folgenden Beispiel wird ein Wert des Typs TIMESTAMP_NTZ auf TIMESTAMP_LTZ gesetzt:
Die VALUES-Klausel ist auf 200.000 Zeilen begrenzt.
Beispiele¶
Die folgenden Beispiele verwenden die VALUES-Klausel, um einen festen, bekannten Satz von Zeilen zu generieren:
Sie können Werte entweder über den Spaltennamen (implizit) oder über die Spaltenposition referenzieren. Im folgenden Beispiel wird die zweite Spalte nach Spaltenposition referenziert:
Im folgenden Beispiel werden mehrere VALUES-Klauseln durch Verwendung von Aliassen unterschieden:
Sie können auch Aliasse für die Spaltennamen angeben, wie im folgenden Beispiel gezeigt: