Das Auswählen von Konstanten ohne Bezugnahme auf eine Tabelle ist in einer SQL-Anweisung völlig legal:
SELECT 1, 2, 3
Die Ergebnismenge, die letztere zurückgibt, ist eine einzelne Zeile, die die Werte enthält. Ich habe mich gefragt, ob es eine Möglichkeit gibt, mehrere Zeilen gleichzeitig mit einem konstanten Ausdruck auszuwählen.
SELECT ((1, 2, 3), (4, 5, 6), (7, 8, 9))
Ich möchte so etwas wie das Obige, das funktioniert und eine Ergebnismenge mit 3 Zeilen und 3 Spalten zurückgibt.
Antworten:
quelle
AS
, um Aliase auf dem erstenSELECT
Classic Report
Tabellen mit statischem Inhalt zu erstellen , wenn dieseFROM dual
nach jedemSELECT
Wert und vor,UNION ALL
falls vorhanden, abgeschlossen sind.In
PostgreSQL
können Sie tun:In anderen Systemen einfach verwenden
UNION ALL
:In
Oracle
,SQL Server
undPostgreSQL
Sie können auch Cord - Sets von beliebiger Anzahl von Zeilen (vorsehbar mit einer externen Variablen) erzeugen:im
Oracle
,im
SQL Server
,in
PostgreSQL
.quelle
SELECT 1
in Oracle (SELECT 1 FROM Dual
gearbeitet).Der folgende bloße
VALUES
Befehl funktioniert für mich in PostgreSQL:quelle
Versuchen Sie die connect by-Klausel in oracle, so etwas
Weitere Informationen zur Connect by-Klausel finden Sie unter folgendem Link: URL entfernt, da die oraclebin-Site jetzt bösartig ist.
quelle
Für Microsoft SQL Server oder PostgreSQL möchten Sie möglicherweise diese Syntax ausprobieren
SELECT constants FROM (VALUES ('[email protected]'), ('[email protected]'), ('[email protected]')) AS MyTable(constants)
Sie können eine SQL-Geige auch hier anzeigen: http://www.sqlfiddle.com/#!17/9eecb/34703/0
quelle
Orakel. Dank dieses Beitrags PL / SQL - Verwenden Sie die Variable "List" in Where In Clause
Ich habe meine Beispielanweisung zusammengestellt, um Werte einfach manuell einzugeben (sie werden beim Testen einer Anwendung durch Tester wiederverwendet):
quelle
quelle
So fülle ich statische Daten in Oracle 10+ mit einem sauberen XML-Trick.
Beim Zusammenführen werden nur die Zeilen eingefügt, die in der Originaltabelle fehlen. Dies ist praktisch, wenn Sie Ihr Einfügeskript erneut ausführen möchten.
quelle
Eine Option für DB2:
quelle
In Oracle
quelle
Hier erfahren Sie, wie Sie die XML-Funktionen von DB2 verwenden
quelle
Dieser Weg kann Ihnen helfen
Any_Table_In_Your_DataBase:
Jede Tabelle, die mehr als 3 Datensätze enthält, oder jede Systemtabelle. Hier haben wir keine Bedenken hinsichtlich der Daten dieser Tabelle.Sie können Variationen in der Ergebnismenge einbringen, indem Sie eine Spalte mit der ersten, zweiten und dritten Spalte aus der
Any_Table_In_Your_DataBase
Tabelle verketten .quelle
In MySQL können Sie Folgendes tun:
values (1,2), (3, 4);
Mit MySQL 8 ist es auch möglich, die Spaltennamen anzugeben:
quelle
sowas in der Art
quelle