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. SQL ServerのFORMAT()でサポートされているカスタムの日付/時刻形式の文字列

    2. MySQL SHA()が機能しない

    3. Mysql-ストアドプロシージャのOUT変数はnullを返します

    4. OracleSQLDeveloperとPostgreSQL