这么简单......我需要检索一个数组数组的项,所以该项必须是一个简单的数组。例如:
WITH t AS (SELECT '{{1,2,3},{333,444,555}}'::int[][] as a, '{{{{1,2}}}}'::int[] as b)
SELECT
a[2], -- returns null (!), why not works?
a[2:2], -- returns array-into-array, not simple array
b[1][1], -- also null
b[1][1][1:2], -- another ugly array-into-array-into...-array
a[1][1] -- is correct, but only works with scalars
FROM t;
结果是NULL,{{333,444,555}},NULL,{{{{1,2}}}},1
...我需要一个简单的数组 a [2] ,{333,444,555}
... 如何访问它?
PS:guide和google-examples仅显示切片......也许它是如此明显但我不记得为什么a[2]
在PostgreSQL中无效。
答案 0 :(得分:1)
I had forgotten what we discussed here:它是“数组数组”的限制形式......命名为“多维数组”......但我坚持以模糊的方式思考,即有时在数组数组中思考。 ..
最佳答案来自pgsql-hackers.at.postgresql.org论坛的Tom Lane,“Postgres中的多维数组不'数组数组'”。
因此,在“多维数组”世界中,不存在我所期望的那种“访问数组项”。
正如@ViníciusGobboA.deOliveira在这里评论的那样,唯一的解决方案是通过PL / SQL(低性能)或C(高性能)编写函数。
答案 1 :(得分:0)
renderMovie(item) {
console.log(item.image);
return (
<TouchableOpacity onPress={()=>{this.toContent(item.id)}}>
<View style={styles.Items}>
<Image
source={{uri:item.image}}
style={styles.thumbnail}
/>
<View style={styles.rightContainer}>
<Text style={styles.title}>{item.title}</Text>
<Text style={styles.mtitle}>{item.byzd1}</Text>
</View>
</View>
</TouchableOpacity>
);
}
将返回 a[2:2]
类型,而非冒号符号 integer[]
将返回 a[2]
类型,实际上在您的情况下应该是一个数组。基于documentation:
通过为一个编写下限:上限来表示数组切片 或更多数组维度。
检查以下代码:
integer