在PostgreSQL中为变量声明和赋值

时间:2017-07-20 10:56:00

标签: sql postgresql parameters

首先,我是SQL的初学者。我有一个包含50多列的表,现在我正在进行计算(在创建的临时表上),但在某些公式中,我得到了参数,例如:A = 3

(A *(Column5 + Column7))/ 2

那么,为参数赋值的最佳方法是什么?

这就是我在考虑的问题

DECLARE A          DOUBLE PRECISION:=3;

但我不知道如何实施它。

2 个答案:

答案 0 :(得分:1)

with选项实际上创建了一个临时表,您可以在同一事务中的sql语句中引用该临时表。

最好的办法是创建一个函数,然后在运行时将参数的值传递给它。例如。

CREATE FUNCTION addColumns(
                          A integer, 
                          firstColumn integer, 
                          secondColumn integer
                            ) 
RETURNS integer
AS 
RETURN (A*(firstColumn + secondColumn))/2
LANGUAGE SQL 
IMMUTABLE;

然后在您的查询中使用它,如:

 select addColumns(3, column5, column7) 
 from [table];

答案 1 :(得分:0)

据我所知,您希望使用变量存储值。 这已在此处得到解答:How to declare a variable in a PostgreSQL query

那里有很多解决方案,但我特别喜欢在使用纯SQL时使用其中一个答案中指出的WITH clause。对于更多花哨的东西,你应该编写适当的存储过程。