我迭代一个数组,并对数组值及其键执行一些操作。从PostgreSQL 9.1开始有了foreach循环,所以数组值没有问题,但是有什么优雅的方法来获取key吗?我发现的唯一解决方案是为此维护额外的变量:
CREATE OR REPLACE FUNCTION foobar( bar integer[] ) RETURNS integer AS $$
DECLARE
foo integer;
barkey integer;
BEGIN
barkey := 1;
FOREACH foo IN ARRAY bar LOOP
-- do some stuff using foo and barkey
barkey := barkey + 1;
END LOOP;
END;
$$ LANGUAGE plpgsql;
这是最好的解决方案,还是有更优雅的解决方案?
FOREACH用于循环遍历数组值的元素,而不是通过它们的键。FOR or generate_subscripts()可以用于此目的。
但一般来说,数组的键和值之间不应该有任何关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)