PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL, status SQL:42601

Ini membangun nilai komposit anonim:

select (1, 'a');

Misalnya:

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

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

Perhatikan bahwa itu adalah nilai gabungan tunggal, bukan beberapa nilai.

Dari manual yang bagus:

8.16.2. Masukan Nilai Gabungan

Untuk menulis nilai komposit sebagai konstanta literal, lampirkan nilai bidang dalam tanda kurung dan pisahkan dengan koma. Anda dapat menempatkan tanda kutip ganda di sekitar nilai bidang apa pun, dan harus melakukannya jika berisi koma atau tanda kurung.
[...]
ROW sintaks ekspresi juga dapat digunakan untuk membangun nilai komposit. Dalam kebanyakan kasus, ini jauh lebih sederhana untuk digunakan daripada sintaks string-literal karena Anda tidak perlu khawatir tentang beberapa lapisan kutipan. Kami sudah menggunakan metode ini di atas:

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

ROW kata kunci sebenarnya opsional selama Anda memiliki lebih dari satu bidang dalam ekspresi, sehingga ini dapat disederhanakan menjadi:

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

Konstruktor Baris bagian mungkin juga menarik.

Saat Anda mengatakan ini:

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

SELECT klausa hanya memiliki satu kolom sebagai keseluruhan (...) ekspresi mewakili nilai tunggal. Solusinya adalah dengan menghapus tanda kurung tersebut:

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. Menulis kueri untuk beberapa tabel di php

  2. Transaksi tidak berfungsi untuk DB MySQL saya

  3. Tipe Hibernasi, Postgres &Array

  4. Bagaimana cara mengimpor data file CSV ke tabel PostgreSQL?

  5. Nama kolom PL/pgSQL sama dengan variabel