PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

PostgreSQL, trạng thái SQL:42601

Điều này tạo ra một giá trị tổng hợp ẩn danh:

select (1, 'a');

Ví dụ:

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

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

Lưu ý rằng đó là một giá trị tổng hợp duy nhất, không phải nhiều giá trị.

Từ hướng dẫn sử dụng tốt:

8.16.2. Đầu vào giá trị tổng hợp

Để viết giá trị tổng hợp dưới dạng hằng số chữ, hãy đặt các giá trị trường trong dấu ngoặc đơn và phân tách chúng bằng dấu phẩy. Bạn có thể đặt dấu ngoặc kép xung quanh bất kỳ giá trị trường nào và phải làm như vậy nếu nó chứa dấu phẩy hoặc dấu ngoặc đơn.
[...]
ROW cú pháp biểu thức cũng có thể được sử dụng để xây dựng các giá trị tổng hợp. Trong hầu hết các trường hợp, cách sử dụng này đơn giản hơn đáng kể so với cú pháp chuỗi-ký tự vì bạn không phải lo lắng về nhiều lớp trích dẫn. Chúng tôi đã sử dụng phương pháp này ở trên:

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

ROW từ khóa thực sự là tùy chọn miễn là bạn có nhiều hơn một trường trong biểu thức, vì vậy những trường này có thể đơn giản hóa thành:

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

Công cụ tạo hàng cũng có thể được quan tâm.

Khi bạn nói điều này:

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

SELECT của bạn mệnh đề chỉ có một cột như toàn bộ (...) biểu thức đại diện cho một giá trị duy nhất. Giải pháp là chỉ cần bỏ các dấu ngoặc đơn đó:

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. PostgreSQL - Mệnh đề GROUP BY

  2. Liên kết tham số mảng với truy vấn gốc

  3. Spark Dataframes UPSERT to Postgres Table

  4. Cấu hình PostgreSQL để có khả năng quan sát

  5. Các thủ tục được lưu trữ có chạy trong giao dịch cơ sở dữ liệu trong Postgres không?