sql >> Database >  >> RDS >> PostgreSQL

Geef WAAR parameters door aan PostgreSQL View?

Je zou een set-return-functie kunnen gebruiken:

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;

Dan kun je het volgende doen:

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

Btw:weet je zeker dat je wilt:

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

if model_label is niet uniek (of de primaire sleutel), dan zal dit uiteindelijk een fout opleveren. Je wilt waarschijnlijk:

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


  1. Verbinding maken met MySQL met Perl

  2. Wat is de meest eenvoudige manier om lege datums in sql-resultaten op te vullen (op mysql- of perl-uiteinde)?

  3. Hoe Lighttpd te installeren met PHP, MariaDB en PhpMyAdmin in Ubuntu

  4. Verbinding maken met Heroku Postgres vanuit Spring Boot