PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL, stan SQL:42601

To tworzy anonimową wartość złożoną:

select (1, 'a');

Na przykład:

=> select (1, 'a');
  row  
-------
 (1,a)
(1 row)

=> select row(1, 'a');
  row  
-------
 (1,a)
(1 row)

Pamiętaj, że jest to pojedyncza wartość złożona, a nie wiele wartości.

Z dobrego podręcznika:

8.16.2. Wprowadzanie wartości złożonej

Aby zapisać wartość złożoną jako stałą literału, należy umieścić wartości pól w nawiasach i oddzielić je przecinkami. Możesz umieścić podwójne cudzysłowy wokół dowolnej wartości pola i musisz to zrobić, jeśli zawiera przecinki lub nawiasy.
[...]
ROW składnia wyrażenia może być również używana do konstruowania wartości złożonych. W większości przypadków jest to znacznie prostsze w użyciu niż składnia string-literal, ponieważ nie musisz się martwić o wiele warstw cytowania. Używaliśmy już tej metody powyżej:

ROW('fuzzy dice', 42, 1.99)
ROW('', 42, NULL)

ROW słowo kluczowe jest w rzeczywistości opcjonalne, o ile w wyrażeniu jest więcej niż jedno pole, więc można to uprościć do:

('fuzzy dice', 42, 1.99)
('', 42, NULL)

Konstruktory wierszy sekcja może być również interesująca.

Kiedy to powiesz:

INSERT INTO circuit (id_circuit, description, date_start, date_end, speed,
length, duration)
SELECT (...)
FROM segment seg, wgs cir where seg.id = 13077

Twój SELECT klauzula ma tylko jedną kolumnę jako całość (...) wyrażenie reprezentuje pojedynczą wartość. Rozwiązaniem jest po prostu usunięcie tych nawiasów:

INSERT INTO circuit (id_circuit, description, date_start, date_end, speed, length, duration)
SELECT seg.id_segment, ..., (seg.date_end - seg.date_start)
FROM segment seg, wgs cir where seg.id = 13077



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyznaj użytkownikowi uprawnienia do nowych tabel utworzonych w postgresql

  2. Jak zresetować domyślne hasło użytkownika postgresql 9.2 (zwykle „postgres”) w systemie Mac OS x 10.8.2?

  3. Odwołaj się do aliasu nazwy kolumny w klauzuli WHERE

  4. Uwierzytelnianie hasła Postgres nie powiodło się

  5. Jak zaktualizować wybrane wiersze wartościami z pliku CSV w Postgresie?