Mysql Postgresql中ELT()函数的替代方法是什么?
在MySQL中,可以使用ELT()函数从列表中的指定位置返回项 如何在Postgresql中找到相同的 ---在MYSQL中Mysql Postgresql中ELT()函数的替代方法是什么?,mysql,postgresql,Mysql,Postgresql,在MySQL中,可以使用ELT()函数从列表中的指定位置返回项 如何在Postgresql中找到相同的 ---在MYSQL中 SELECT ELT(3, 'Cat', 'Dog', 'Horse') AS 'Result'; ---结果---------- 您可能必须在Postgres中使用大小写表达式。替换: ELT(col, 'Cat', 'Dog', 'Horse') 与: 使用数组: select (array['Cat', 'Dog', 'Horse'])[3]; 如果出于兼容性
SELECT ELT(3, 'Cat', 'Dog', 'Horse') AS 'Result';
---结果----------
您可能必须在Postgres中使用
大小写表达式。替换:
ELT(col, 'Cat', 'Dog', '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";
现场演示但我需要动态查询。那么如何处理呢?在postgresql中查找集合中的集合的替代方案是什么?选择查找集合中的查找(12,'14,12,13,15,18,16,15,12')
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";