sql - 如何在 PostgreSQL 查询中声明变量

标签 sql postgresql postgresql-8.3

如何声明在 PostgreSQL 8.3 查询中使用的变量?

在 MS SQL Server 中我可以这样做:

DECLARE @myvar INT
SET @myvar = 5

SELECT *
FROM somewhere
WHERE something = @myvar

我如何在 PostgreSQL 中做同样的事情?根据文档,变量被简单地声明为“name type;”,但这给了我一个语法错误:

myvar INTEGER;

谁能给我一个正确语法的例子?

最佳答案

我通过使用 WITH clause 实现了同样的目标,它远没有那么优雅,但可以做同样的事情。虽然对于这个例子来说,它确实有点矫枉过正。我也不是特别推荐这个。

WITH myconstants (var1, var2) as (
   values (5, 'foo')
)
SELECT *
FROM somewhere, myconstants
WHERE something = var1
   OR something_else = var2;

关于sql - 如何在 PostgreSQL 查询中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882882/

相关文章:

mysql - 查询不返回所有预期的行

mysql - 如何仅选择唯一记录

mysql - 将多行转换为列

c - postgres 触发器 C 函数是否阻塞?

node.js - 无法在 Google Cloud Function 中加载 node_modules(index.js,不在项目根目录上)

sql - 参数化表名

sql - 如何创建 cron 作业来运行 postgresQL 函数?

sql - 索引不会提高性能

postgresql - 如何终止 postgresql 8.3 session ?

postgresql - 如何从 pl/pgsql 函数中调用 shell 命令?