2015-09-09 2 views
2

Я написал функцию в PostgreSQL, где я хочу назначить несколько значений для переменных, используя один оператор select. Я объявил несколько переменных и используя select, я хочу присвоить значения этим переменным в теле функции. Пожалуйста, найдите ниже тела функции:Несколько назначений в одном выборе

BEGIN   
select SUM(quantity) into v_quantity, MAX(price) into v_price from trade where id=4; 
END 

Когда я компилирую функции я получаю следующее сообщение об ошибке

ERROR: "max" is not a known variable 
LINE 20:  select SUM(quantity) into v_quantity, max(price) into v_... 

Что может быть причиной? Не позволяет ли PostgreSQL выполнять несколько назначений с помощью одного выбора?

ответ

3

Да он делает. Чтобы заставить его работать, у вас должен быть только один список выбора и одно предложение INTO:

BEGIN   
    select SUM(quantity), MAX(price) into v_quantity, v_price from trade where id=4; 
END 
0

Вы можете использовать переменную типа записи вместо:

... 
declare 
    rec record; 
begin  
    select sum(quantity) as v_quantity, max(price) as v_price into rec from trade where id=4; 
    if rec.v_quantity > 100 then 
    ... 
Смежные вопросы