sql >> Databasteknik >  >> RDS >> PostgreSQL

Skicka in VAR parametrar till PostgreSQL View?

Du kan använda en set returnerande funktion:

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;

Sedan kan du göra:

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

Btw:är du säker på att du vill ha:

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

om model_label inte är unik (eller primärnyckeln) så kommer detta att ge ett fel så småningom. Du vill förmodligen:

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


  1. Android SQLite databas och app uppdatering

  2. Förslag för implementering av revisionstabeller i SQL Server?

  3. Så här fixar du "Systemresurs överskriden" vid migrering till Windows 10

  4. FEL:Kunde inte läsa rad 0, kol -1 från CursorWindow. Se till att markören är korrekt initierad innan du kommer åt data