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

Chọn các cột có tên cột cụ thể trong PostgreSQL

cột column là một từ dành riêng . Bạn không thể sử dụng nó làm định danh trừ khi bạn trích dẫn kép nó. Như:"column" .

Tuy nhiên, không có nghĩa là bạn nên làm như vậy. Chỉ cần không sử dụng các từ dành riêng làm định danh. Đã từng.

Để ...

chọn danh sách các cột có tên là 2010:

.. bạn có thể sử dụng hàm này để tạo lệnh SQL động từ bảng danh mục hệ thống pg_attribute :

CREATE OR REPLACE FUNCTION f_build_select(_tbl regclass, _pattern text)
  RETURNS text AS
$func$
    SELECT format('SELECT %s FROM %s'
                 , string_agg(quote_ident(attname), ', ')
                 , $1)
    FROM   pg_attribute 
    WHERE  attrelid = $1
    AND    attname LIKE ('%' || $2 || '%')
    AND    NOT attisdropped  -- no dropped (dead) columns
    AND    attnum > 0;       -- no system columns
$func$ LANGUAGE sql;

Gọi:

SELECT f_build_select('weather_data', '2010');

Trả về một cái gì đó như:

SELECT foo2010, bar2010_id, FROM weather_data;

Bạn không thể đặt điều này hoàn toàn động vì kiểu trả về là không xác định cho đến khi chúng tôi thực sự tạo truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PG ::Lỗi trong mệnh đề GROUP BY

  2. Cách hoạt động của hàm Sign () trong PostgreSQL

  3. Làm thế nào để xem phiên bản Postgres nào đang chạy

  4. Postgres - Hàm trả về giao điểm của 2 ĐƯỜNG LÊN?

  5. Cách đóng lỗ hổng bảo mật trong PostgreSQL