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

Заявка, връщаща точен брой редове

Считайте това за опростено версия на вашата функция plpgsql . Трябва да работи в PostgreSQL 8.3 :

CREATE OR REPLACE FUNCTION x.fnk_abonemento_nariai(_prm_item integer)
  RETURNS SETOF subject_items AS
$BODY$
DECLARE
    _kiek    integer :=  num_records    -- get number at declaration time
                         FROM subjekto_abonementai WHERE num_id = _prm_item;
    _counter integer;
BEGIN

RETURN QUERY                            -- get the records that actualy exist
SELECT sub_item, sal_subject
FROM   sal_subject 
WHERE  sub_item = prm_item;

GET DIAGNOSTICS _counter = ROW_COUNT;   -- save number of returned rows.

RETURN QUERY
SELECT NULL, NULL                       -- fill the rest with null values
FROM   generate_series(_counter + 1, _kiek);

END;
$BODY$ LANGUAGE plpgsql VOLATILE STRICT;

Подробности за plpgsql в ръководството (връзка към версия 8.3).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възникна грешка при инсталирането на pg (0.17.1) и Bundler не може да продължи

  2. Частичен индекс не се използва в клаузата ON CONFLICT при извършване на upsert в Postgresql

  3. Не може да се извика JNDI ресурс във файла persistence.xml

  4. psycopg2:вмъкване на няколко реда с една заявка

  5. проблем с псевдонима на колоната на postgres