有没有办法在PostgreSQL查询中定义命名常量?例如:
MY_ID = 5;
SELECT * FROM users WHERE id = MY_ID;
有没有办法在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,其中定义了常数.然后,我可以在任何级别多次将其交叉连接到我的查询中.我发现这在处理日期时特别有用,需要处理多个子查询中的日期常量.