有没有一种在 PostgreSQL 查询中使用变量的简单方法?

Is there a EASY way to use a variable in a PostgreSQL query?

使用:PostgreSQL10 & pgAdmin4

所以这个查询很简单:

SELECT * FROM [schema_name].[table_name] 
   WHERE [schema_name].[table_name].[field_name] = 'search_value';

在 Transact-SQL 中,您可以为“search_value”创建一个变量:

DECLARE @find varchar(30) = 'search_value';

SELECT * FROM [schema_name].[table_name] 
   WHERE [schema_name].[table_name].[field_name] = @find;

甚至重新使用变量:

SET @find = 'new_search_value';

我现在已经尝试了一切在 Postgre 中模仿这个SQL,但我无法让它工作。

有什么建议吗???

您可以使用自定义 configuration value:

SELECT set_config('vars.find', 'search_value', false);

SELECT * FROM schema_name.table_name
   WHERE schema_name.table_name.field_name = current_setting('vars.find');

名称 needs a namespace(在本例中为 vars),但您可以为此使用任何随机字符串。

set_config() 的最后一个布尔参数确定新值是在您的会话的其余部分持续 (false) 还是在当前事务结束时重置 (true) .