首先,我是SQL的初学者。我有一个包含50多列的表,现在我正在进行计算(在创建的临时表上),但在某些公式中,我得到了参数,例如:A = 3
(A *(Column5 + Column7))/ 2
那么,为参数赋值的最佳方法是什么?
这就是我在考虑的问题
DECLARE A DOUBLE PRECISION:=3;
但我不知道如何实施它。
答案 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。对于更多花哨的东西,你应该编写适当的存储过程。