在PostgreSQL查询中使用变量有没有简单的方法? 使用:PostgreSQL10&pgAdmin4

在PostgreSQL查询中使用变量有没有简单的方法? 使用:PostgreSQL10&pgAdmin4,postgresql,variables,pgadmin,Postgresql,Variables,Pgadmin,所以这个查询很简单: SELECT * FROM [schema_name].[table_name] WHERE [schema_name].[table_name].[field_name] = 'search_value'; 在Transact-SQL中,可以为“搜索值”创建变量: 甚至重复使用变量: SET @find = 'new_search_value'; 我现在已经尝试了在PostgreSQL中模仿这一点,但我无法让它工作 有什么建议吗?您可以通过自定义: 名称(va

所以这个查询很简单:

SELECT * FROM [schema_name].[table_name] 
   WHERE [schema_name].[table_name].[field_name] = 'search_value';
在Transact-SQL中,可以为“搜索值”创建变量:

甚至重复使用变量:

SET @find = 'new_search_value';
我现在已经尝试了在PostgreSQL中模仿这一点,但我无法让它工作


有什么建议吗?

您可以通过自定义:

名称(
vars
,在本例中),但可以使用任意随机字符串


set_config()
的最后一个布尔参数确定新值是在会话的剩余时间(
false
)内持续,还是在当前事务结束时重置(
true
)。

最后是一个干净的响应。开枪,尼克·巴恩斯!!我尝试过使用With子句,将查询更改为函数、声明语句、临时表等,这是最有意义的(可能是我来自MS SQL的背景)。。。
SET @find = 'new_search_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');