不确定这是否可行以及最佳方式是什么,但我有一个值列表(比如'ACBC','ADFC','AGGD'等)随着时间的推移而增长。我想在 pgADmin 中使用这些值作为SQL语句的一种变量/参数; e.g:
代码= {'ACBC','ADFC','AGGD'}
SQL:Statement => SELECT * FROM xxx WHERE SUBSTRING IN (Codes)
是否可以通过变量,参数,函数或其他任何方式实现?
答案 0 :(得分:0)
我可以考虑以下选项:
1)创建单独的表
create table qry_params(prm_value varchar);
insert into qry_params values
('xxx'),
('yyy'),
('zzz');
select * from xxx where substring in (select prm_value from qry_params)
每当有新参数时,只需将其添加到表中即可。
2)查询顶部的CTE
使用如下查询:
with params (prm_value) as (select values ('xxx'), ('yyy'), ('zzz'))
select * from xxx where substring in (select prm_value from qry_params)
每当你有新参数时,你只需要将它添加到CTE。