PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Подаване на параметри WHERE към изглед на PostgreSQL?

Можете да използвате функция за връщане на набор:

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;

След това можете да направите:

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

Между другото:сигурни ли сте, че искате:

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

ако model_label не е уникален (или първичен ключ), тогава това в крайна сметка ще доведе до грешка. Вероятно искате:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на JSONB в PostgreSQL:Как ефективно да съхранявате и индексирате JSON данни в PostgreSQL

  2. Преглед на инструментите за диаграма на базата данни, налични за PostgreSQL

  3. Разделете колоната на няколко реда в Postgres

  4. Използване на jsonb_set() за актуализиране на конкретна стойност на jsonb масив

  5. 2019 PostgreSQL Trends Report:Частен срещу публичен облак, миграции, комбинации от бази данни и водещи използвани причини