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

Предаване на ResultSet в Postgresql функция

Можете да използвате курсор , но това е много непрактично за изчисляване на минимум.

Бих използвал временна таблица за тази цел и предайте името на таблицата за използване в динамичния SQL :

CREATE OR REPLACE FUNCTION f_min_id(_tbl regclass, OUT min_id int) AS 
$func$
BEGIN

EXECUTE 'SELECT min(id) FROM ' || _tbl
INTO min_id;

END  
$func$ LANGUAGE plpgsql;

Обаждане:

CREATE TEMP TABLE foo ON COMMIT DROP AS
SELECT id, name
FROM   users
LIMIT  50;

SELECT f_min_id('foo');

Основни точки

-> Демонстрация на SQLfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оптимизиране на заявка за сходство на postgres (pg_trgm + gin индекс)

  2. Грешка в гнездото на Postgresql при стартиране на syncdb на Django (mac OS 10.7.5)

  3. Оптимизиране на множество присъединявания

  4. Въведете час с часова зона лятно часово време

  5. Разширяването на ред чрез * не се поддържа тук