Store query result in a variable using in PL/pgSQL

前端 未结 5 1335
别那么骄傲
别那么骄傲 2020-11-29 21:12

How to assign the result of a query to a variable in PL/pgSQL, the procedural language of PostgreSQL?

I have a function:

CREATE OR REPLACE FUNCTION t         


        
5条回答
  •  南方客
    南方客 (楼主)
    2020-11-29 21:43

    Create Learning Table:

    CREATE TABLE "public"."learning" (
        "api_id" int4 DEFAULT nextval('share_api_api_id_seq'::regclass) NOT NULL,
        "title" varchar(255) COLLATE "default"
    );
    

    Insert Data Learning Table:

    INSERT INTO "public"."learning" VALUES ('1', 'Google AI-01');
    INSERT INTO "public"."learning" VALUES ('2', 'Google AI-02');
    INSERT INTO "public"."learning" VALUES ('3', 'Google AI-01');
    

    Step: 01

    CREATE OR REPLACE FUNCTION get_all (pattern VARCHAR) RETURNS TABLE (
            learn_id INT,
            learn_title VARCHAR
    ) AS $$
    BEGIN
        RETURN QUERY SELECT
            api_id,
            title
        FROM
            learning
        WHERE
            title = pattern ;
    END ; $$ LANGUAGE 'plpgsql';
    

    Step: 02

    SELECT * FROM get_all('Google AI-01');
    

    Step: 03

    DROP FUNCTION get_all();
    

    Demo:

提交回复
热议问题