sql >> Databasteknik >  >> RDS >> PostgreSQL

Fråga som returnerar exakt antal rader

Se detta till stor del förenklat version av din plpgsql-funktion . Bör fungera i 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;

Detaljer om plpgsql i manualen (länk till version 8.3).



  1. MySQL, räkna antalet ifyllda fält i en tabell

  2. Dumpa Oracle-tabelldata till INSERT-satser

  3. Spring Docker-container kan inte komma åt Postgres Docker-container

  4. Varför lägger Oracle till en dold kolumn här?