sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL, SQL-status:42601

Dit construeert een anonieme samengestelde waarde:

select (1, 'a');

Bijvoorbeeld:

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

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

Merk op dat dit een enkele samengestelde waarde is, niet meerdere waarden.

Uit de fijne handleiding:

8.16.2. Samengestelde waarde invoer

Om een ​​samengestelde waarde als een letterlijke constante te schrijven, plaatst u de veldwaarden tussen haakjes en scheidt u ze door komma's. U kunt dubbele aanhalingstekens rond elke veldwaarde plaatsen, en u moet dit doen als deze komma's of haakjes bevat.
[...]
De ROW expressiesyntaxis kan ook worden gebruikt om samengestelde waarden te construeren. In de meeste gevallen is dit aanzienlijk eenvoudiger te gebruiken dan de letterlijke tekenreekssyntaxis, omdat u zich geen zorgen hoeft te maken over meerdere lagen aanhalingstekens. We hebben deze methode hierboven al gebruikt:

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

De ROW trefwoord is eigenlijk optioneel zolang u meer dan één veld in de uitdrukking heeft, dus deze kunnen worden vereenvoudigd tot:

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

De Rijconstructeurs sectie kan ook interessant zijn.

Als je dit zegt:

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

uw SELECT clausule heeft slechts één kolom als de hele (...) expressie vertegenwoordigt een enkele waarde. De oplossing is om die haakjes gewoon weg te laten:

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. Hoe te SELECTEREN * maar zonder Kolomnamen moeten uniek zijn in elke weergave

  2. Verschil tussen orakel DATE en TIMESTAMP

  3. hoe de grootte van een kolom te wijzigen

  4. PostgreSQL - FOUT:kolomdatum kan niet worden gecast om datum te typen