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

Sử dụng tham số làm tên cột trong hàm Postgres

Bạn không thể sử dụng các tham số làm số nhận dạng (=tên cột), bạn cần SQL động cho điều đó. Và điều đó yêu cầu PL / pgSQL:

CREATE OR REPLACE FUNCTION day_entries(p_id int, p_column text) 
  RETURNS BIGINT[] 
AS
$$
declare 
  l_result bigint[];
begin
  execute format('SELECT %I FROM days WHERE id = $1', p_column) 
     using p_id
     into l_result;
  return l_result;
end;     
$$
LANGUAGE plpgsql;

format () xử lý đúng cách với các số nhận dạng khi xây dựng SQL động. $1 là một trình giữ chỗ tham số và giá trị cho giá trị đó được chuyển với using p_id mệnh đề của execute tuyên bố.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các tính năng tương thích Oracle mới trong PostgresPlus Advanced Server 9.3Beta

  2. PostgreSQL - tìm nạp hàng có giá trị Tối đa cho một cột

  3. Xóa PostgreSQL với tham gia bên trong

  4. Làm cách nào để thay đổi cơ sở dữ liệu thành postgresql với Symfony 2.0?

  5. Làm cách nào để định cấu hình HikariCP cho postgresql?