sql >> Databáze >  >> RDS >> PostgreSQL

Dotaz vrací přesný počet řádků

Považujte to za značně zjednodušené verzi vaší funkce plpgsql . Mělo by fungovat v 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;

Podrobnosti o plpgsql v příručce (odkaz na verzi 8.3).



  1. Dotaz Mysql s ID zdroje #11

  2. Proč mám ORA-00904, i když je sloupec přítomen?

  3. Postgres dotaz je velmi pomalý s aktuální_datum::datum místo pevně zakódovaného data

  4. Existuje ekvivalent MySQL k PHP preg_replace?