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

Các hàm PL / pgSQL:Cách trả về một bảng bình thường có nhiều cột bằng cách sử dụng câu lệnh thực thi

Bạn đang thực hiện chức năng đó như thế nào? Nó hoạt động như một câu lệnh chọn.

Tạo bảng: public.users

create table public.users (id int, firstname varchar, lastname varchar);

Chèn một số bản ghi:

insert into public.users values (1, 'aaa','bbb'),(2,'ccc','ddd');

chức năng: my_ Chức năng

CREATE OR REPLACE FUNCTION my_function(user_id integer) RETURNS TABLE(id integer, firstname character varying, lastname character varying) AS $$
    DECLARE
        ids INTEGER[];
    BEGIN
         ids := ARRAY[1,2];
         RETURN QUERY
             SELECT users.id, users.firstname, users.lastname
             FROM public.users
             WHERE users.id = ANY(ids);
    END;
$$ LANGUAGE plpgsql;

Bây giờ bạn có thể sử dụng với *

select * from my_function(1);

Kết quả của truy vấn

 id | firstname | lastname 
----+-----------+----------
  1 | aaa       | bbb
  2 | ccc       | ddd

Hoặc với cả tên cột

select id,firstname,lastname from my_function(1);

Kết quả

 id | firstname | lastname 
----+-----------+----------
  1 | aaa       | bbb
  2 | ccc       | ddd


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg2.OperationalError:FATAL:giao thức frontend không được hỗ trợ 1234.5679:máy chủ hỗ trợ từ 2.0 đến 3.0

  2. PostgreSQL chuyển đổi sai từ dấu thời gian không có múi giờ sang dấu thời gian có múi giờ

  3. Tránh bế tắc PostgreSQL khi thực hiện cập nhật hàng loạt và thao tác xóa

  4. Chỉ mục PostgreSQL không được sử dụng cho truy vấn trên các dải IP

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