Wybieranie stałych bez odwoływania się do tabeli jest całkowicie dozwolone w instrukcji SQL:
SELECT 1, 2, 3
Zestaw wyników, który zwraca ten ostatni, to pojedynczy wiersz zawierający wartości. Zastanawiałem się, czy istnieje sposób na wybranie wielu wierszy naraz przy użyciu stałego wyrażenia, coś w rodzaju:
SELECT ((1, 2, 3), (4, 5, 6), (7, 8, 9))
Chciałbym, aby coś takiego jak powyżej działało i zwracało zestaw wyników z 3 wierszami i 3 kolumnami.
Odpowiedzi:
źródło
AS
do podania aliasów na pierwszymSELECT
Classic Report
tabel z zawartością statyczną, jeśli uzupełnia się jeFROM dual
po każdejSELECT
wartości i przed,UNION ALL
jeśli jest obecny.W
PostgreSQL
możesz:W innych systemach wystarczy użyć
UNION ALL
:W
Oracle
,SQL Server
iPostgreSQL
, można również generować zestawów rekordów z dowolnej liczby wierszy (providable ze zmienną zewnętrzną):w
Oracle
,w
SQL Server
,w
PostgreSQL
.źródło
SELECT 1
w Oracle (SELECT 1 FROM Dual
działało).Poniższe
VALUES
polecenie działa dla mnie w PostgreSQL:źródło
Wypróbuj klauzulę connect by w oracle, coś w tym rodzaju
Aby uzyskać więcej informacji na temat klauzuli connect by, kliknij ten link: usunięto adres URL, ponieważ witryna oraclebin jest teraz złośliwa.
źródło
W przypadku Microsoft SQL Server lub PostgreSQL możesz wypróbować tę składnię
SELECT constants FROM (VALUES ('[email protected]'), ('[email protected]'), ('[email protected]')) AS MyTable(constants)
Możesz również wyświetlić SQL Fiddle tutaj: http://www.sqlfiddle.com/#!17/9eecb/34703/0
źródło
Wyrocznia. Dzięki temu wpisowi PL / SQL - Użyj zmiennej "List" w klauzuli Where In
Złożyłem moją przykładową instrukcję, aby łatwo ręcznie wprowadzić wartości (ponownie wykorzystane do testowania aplikacji przez testerów):
źródło
źródło
Oto jak wypełniam dane statyczne w Oracle 10+ przy użyciu zgrabnej sztuczki XML.
Scalanie powoduje wstawienie tylko tych wierszy, których brakuje w oryginalnej tabeli, co jest wygodne, jeśli chcesz ponownie uruchomić skrypt wstawiania.
źródło
Opcja dla DB2:
źródło
W Oracle
źródło
Oto, jak to zrobić, korzystając z funkcji XML programu DB2
źródło
Ten sposób może ci pomóc
Any_Table_In_Your_DataBase:
dowolna tabela zawierająca więcej niż 3 rekordy lub dowolna tabela systemowa. Tutaj nie martwimy się o dane z tej tabeli.Możesz wprowadzić zmiany w zestawie wyników, łącząc kolumnę z pierwszą, drugą i trzecią kolumną
Any_Table_In_Your_DataBase
tabeli.źródło
W MySQL możesz:
values (1,2), (3, 4);
W MySQL 8 można również nadać nazwy kolumn:
źródło
coś w tym stylu
źródło