sql >> Database teknologi >  >> RDS >> PostgreSQL

Forespørgsel returnerer nøjagtigt antal rækker

Betragt dette stort set forenklet version af din plpgsql-funktion . Bør fungere 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 (link til version 8.3).



  1. Bliver pladsen optaget af slettede rækker genbrugt?

  2. Beregn decil i MySQL baseret på totaler

  3. Hvorfor forårsager flere MySql-forespørgsler syntaksfejl, mens de hver for sig fungerer med succes?

  4. Sådan bruger du MySQL-dump fra en ekstern maskine