PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Връща набор от редове от функцията plpgsql.

CREATE FUNCTION test() 
RETURNS my_table AS
$BODY$
DECLARE
    q4 my_table;
BEGIN
    -- add brackets to get a value 
    -- select row as one value, as q4 is of the type my_table
    -- and limit result to one row
    q4 := (SELECT my_table FROM my_table ORDER BY 1 LIMIT 1);
    RETURN q4;
END;$BODY$
-- change language to plpgsql
LANGUAGE plpgsql;
  • Не можете да използвате променливи в sql функции, използвайте plpgsql .
  • Можете да присвоите една стойност на променлива, докато select query връща набор от редове.
  • Трябва да изберете ред като една стойност, тъй като променливата е от съставен тип.

Пример за използване на цикъл:

DROP FUNCTION test();
CREATE FUNCTION test() 
-- change to SETOF to return set of rows, not a single row
RETURNS SETOF my_table AS
$BODY$
DECLARE
    q4 my_table;
BEGIN
    FOR q4 in
        SELECT * FROM my_table
    LOOP
        RETURN NEXT q4;
    END LOOP;
END;$BODY$
LANGUAGE plpgsql;

SELECT * FROM test();

Прочетете документацията за Връщане от функция



  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:Сравнение на низове без регистри

  2. Postgresql пълнотекстово търсене за чешки език (няма езикова конфигурация по подразбиране)

  3. postgresql:Защо трябва да посочвам -h localhost, когато изпълнявам psql?

  4. Обобщена заявка за 50M+ таблица с редове в PostgreSQL

  5. Причинено от:org.postgresql.util.PSQLException:ФАТАЛНО:оставащите слотове за връзка са запазени за връзки на суперпотребител без репликация