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

Předat parametry WHERE do zobrazení PostgreSQL?

Můžete použít funkci vrácení sady:

create or replace function label_params(parm1 text, parm2 text)
  returns table (param_label text, param_graphics_label text)
as
$body$
  select ...
  WHERE region_label = $1 
     AND model_id = (SELECT model_id FROM models WHERE model_label = $2)
  ....
$body$
language sql;

Pak můžete:

select *
from label_params('foo', 'bar')

Btw:jsi si jistý, že chceš:

AND model_id = (SELECT model_id FROM models WHERE model_label = $2)

if model_label není jedinečný (nebo primární klíč), pak to nakonec vyvolá chybu. Pravděpodobně chcete:

AND model_id IN (SELECT model_id FROM models WHERE model_label = $2)


  1. Jak připravit příkazy a parametry vazby v Postgresql pro C++

  2. Postgres rekurzivní dotaz s row_to_json

  3. ZKONTROLUJTE omezení u data narození?

  4. GeneratedValue v Postgresu