有没有办法在PostgreSQL查询中定义命名常量?例如:

MY_ID = 5;
SELECT * FROM users WHERE id = MY_ID;

推荐答案

这个问题以前有人问过(How do you use script variables in PostgreSQL?).然而,我有时会在查询时使用一个技巧:

with const as (
    select 1 as val
)
select . . .
from const cross join
     <more tables>

也就是说,我定义了一个名为const的CTE,其中定义了常数.然后,我可以在任何级别多次将其交叉连接到我的查询中.我发现这在处理日期时特别有用,需要处理多个子查询中的日期常量.

Sql相关问答推荐

数据子集的左连接

创建每小时重置的序列号

对于表A中的每一行,更新表B中与金额有关的行

为表中每个缺少的引用创建新行

PostgreSQL使用SQL子查询在时间间隔内 Select 数据

查询页面推荐

我如何才能在付款人单列中拉出只有9个付款人单的人?

如何将不同层次的产品组和规格组合到最深一层?

查找滑动窗口框架中的最大和最小列值

将 jsonb 数组中的对象取消嵌套到单独的行中

统计重复记录的总数

没有调用子查询的嵌套 JOIN语法是什么?

将varchar (7)列转换为datetime

Clob 问题 - 将 clob 列拆分为多行

oracle中多行的跨日期范围的交集

添加一列并根据其他列值进行填充

如何获得上个月和下个月之间的销售额差异

具有日期时间条件的存储过程

Select 给定类别列表(或更多类别)中的所有事物

T-SQL 查询计算日期在其他列中定义的日期之间绑定的行数