Можно ли добавить предложение WHERE в SELECT в plpgsql? - PullRequest
1 голос
/ 23 июня 2011

У меня есть функция с несколькими параметрами IN.

Мне нужно создать сложный выбор и использовать параметры в WHERE CLAUSE.

Есть ли способ, как я могу добавить некоторые условия, как это:

if ($1 > 0)  then
 condition1 ='col1 = $1';
end if;

SELECT * from table1 WHERE || condition1 ;

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вы можете использовать динамический SQL

http://www.postgresql.org/docs/current/static/plpgsql-statements.html

0 голосов
/ 23 июня 2011

Да, вы можете выполнять динамические команды, используя "execute"

if ($1 > 0)  then
 condition1 ='col1 = '||$1::varchar;
end if;

execute 'select * from table1 where '||condition1;

http://www.postgresql.org/docs/8.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

...