如何声明用于PostgreSQL 8.3查询的变量?
在MS SQL Server中,我可以执行以下操作:
DECLARE @myvar INT
SET @myvar = 5
SELECT *
FROM somewhere
WHERE something = @myvar
如何在PostgreSQL中实现同样的功能?根据文档,变量被简单地声明为"name type;",但这给了我一个语法错误:
myvar INTEGER;
谁能给我举个正确语法的例子吗?
如何声明用于PostgreSQL 8.3查询的变量?
在MS SQL Server中,我可以执行以下操作:
DECLARE @myvar INT
SET @myvar = 5
SELECT *
FROM somewhere
WHERE something = @myvar
如何在PostgreSQL中实现同样的功能?根据文档,变量被简单地声明为"name type;",但这给了我一个语法错误:
myvar INTEGER;
谁能给我举个正确语法的例子吗?
PostgreSQL中没有这样的功能.只能在pl/PgSQL(或其他pl/*)中执行,但不能在普通SQL中执行.
例外情况是WITH ()
个查询可以作为变量,甚至tuple
个变量.它允许您返回一个临时值表.
WITH master_user AS (
SELECT
login,
registration_date
FROM users
WHERE ...
)
SELECT *
FROM users
WHERE master_login = (SELECT login
FROM master_user)
AND (SELECT registration_date
FROM master_user) > ...;