首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在简单的PostgresSQL查询中使用变量

在简单的PostgresSQL查询中使用变量
EN

Stack Overflow用户
提问于 2020-12-11 19:21:10
回答 2查看 34关注 0票数 2

我必须执行大量的查询,其中相同的值被重用。我想到了类似这样的东西:

代码语言:javascript
运行
复制
varName = 'value';
select * from sometable t where
 t.field1 = varName 
 or t.field2 = varName;

如何在PostgreSQL 12中做到这一点?

我试了很多我找到的东西,但似乎都不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-11 20:04:56

或者,您可以在CTE中使用VALUES。这将使您能够在同一“变量”中有多个值。

数据示例:

代码语言:javascript
运行
复制
CREATE TABLE t (c1 int, c2 text);
INSERT INTO t VALUES (42,'foo'),(1,'xpto');

查询

代码语言:javascript
运行
复制
WITH j (var) AS (VALUES ('foo'),('bar')) 
SELECT t.c1,j.var FROM t
JOIN j ON j.var = t.c2;

 c1 | var 
----+-----
 42 | foo
票数 0
EN

Stack Overflow用户

发布于 2020-12-11 19:50:37

同时我找到了一个解决方案

代码语言:javascript
运行
复制
with varName as (select 'value'::text) 
select * from sometable t where
 t.field1 = (select * from varName)
 or t.field2 = (select * from varName);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65250382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档