PostgreSQL - 模仿 CHOOSE() 函数?

问题描述 投票:0回答:1

下午好!寻找一些针对 Postgres 的建议。它没有与 CHOOSE() 等效的函数,但我想用它从列表中选择一个随机字符串。即:

 SELECT CHOOSE ('red', 'yellow', 'blue', 'green');

有没有一种有效的方法可以在 Postgres 中复制这个?谢谢!

尝试使用 CHOOSE() 但 Postgres 中不存在它,也不存在已知的等效项。考虑使用 RANDOM() 生成一个值并使用 CASE 语句根据该值选择一个字符串。

sql postgresql
1个回答
0
投票

创建您自己的函数:

CREATE OR REPLACE FUNCTION choose(VARIADIC i_input TEXT[])
RETURNS text
    LANGUAGE SQL
AS
$$
    SELECT content
    FROM unnest(i_input) AS u(content)
    ORDER BY random()
    LIMIT 1;
$$;


SELECT CHOOSE ('red', 'yellow', 'blue', 'green');
© www.soinside.com 2019 - 2024. All rights reserved.