gpt4 book ai didi

mysql - Postgresql 中 ELT() 函数的替代方法是什么?

转载 作者:行者123 更新时间:2023-11-29 05:01:21 24 4
gpt4 key购买 nike

在 MySQL 中,您可以使用 ELT() 函数从列表中的指定位置返回一个项目。

如何在 Postgresql 中找到相同的

--- 在MySQL中

SELECT ELT(3, 'Cat', 'Dog', 'Horse') AS 'Result';

--- 结果------------

 Horse  

最佳答案

使用数组:

select (array['Cat', 'Dog', 'Horse'])[3];

如果出于兼容性原因需要一个函数:

create or replace function elt(int, variadic text[])
returns text language sql immutable as $$
select $2[$1]
$$;

select elt(3, 'Cat', 'Dog', 'Horse') AS "Result";

更新。 find_in_set() 的 Postgres 等价物(来自评论的 @PavelStehule 函数的略微改进版本):

create or replace function find_in_set(text, text)
returns int immutable strict as $$
select coalesce(array_position(string_to_array($2, ','), $1::text), 0)
$$ language sql;

测试db<>fiddle.中的函数

关于mysql - Postgresql 中 ELT() 函数的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58618706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com