我可以在 PostgreSQL 的动态 SQL 查询中的不同位置使用相同的变量吗

Can I use the same variable in different positions in dynamic SQL query in PostgreSQL

我正在使用 PostgreSQL 创建复杂的动态查询。在我的查询中,我可以在查询的多个位置多次使用一个变量,为了简化事情,我想知道我是否可以这样做:

SELECT * FROM employees Where name =  and id =  and manager_id = ;

然后像这样执行查询:

EXECUTE format ('SELECT * FROM employees Where name =  and id =  and manager_id = ;') using (var_name, var_id);

参数是位置性的,因此 </code> 总是引用第一个参数,无论您在哪里引用它以及引用它的频率如何。</p> <p>但是您必须<strong>不要</strong>将参数括在括号中,因为这会创建匿名记录。 <code>using (var_name, var_id) 传递一个 单个 参数(这是一个有两个字段的记录)。

所以你可以使用:

EXECUTE format('SELECT * FROM employees Where name =  and id =  and manager_id = ') 
 using var_name, var_id;