【发布时间】:2017-10-14 07:08:32
【问题描述】:
我正在尝试使用非常简单的测试函数在 plpgsql 中返回多个值。测试函数将整数作为输入,如果它是正数、负数和零,则应该返回。我看过一些例子,但它们都太复杂了,我无法理解。
这是我尝试过的:
create or replace function test(v integer)
returns record as $$
BEGIN
IF v > 0
THEN return true as positive, false as negative, false as zero;
ELSEIF v < 0
THEN return false as positive, true as negative, false as zero;
ELSE
return false as positive, false as negative, true as zero;
END IF;
END;
$$ LANGUAGE plpgsql;
也试过了
create or replace function test(v integer)
returns record as $$
DECLARE
result record;
BEGIN
IF v > 0
THEN
result.positive = true;
result.negative = false;
result.zero = false;
ELSEIF v < 0
THEN
result.positive = false;
result.negative = true;
result.zero = false;
ELSE
result.positive = false;
result.negative = false;
result.zero = true;
return result;
END IF;
END;
$$ LANGUAGE plpgsql;
还有这个:
IF v > 0
THEN
SELECT true, false, false into
result.positive, result.negative, result.zero;
ELSEIF v < 0
THEN
SELECT false, true, false into
result.positive, result.negative, result.zero;
ELSE
SELECT false, false, true into
result.positive, result.negative, result.zero;
return result;
END IF;
【问题讨论】:
标签: postgresql plpgsql