PostgreSQL:将数组拆分为元素的查询

时间:2016-08-10 10:40:30

标签: sql arrays postgresql

我是PostgreSQl的新手,所以这可能是一个基本问题: 我有一个表格,其中包含一个数据类型为text []的字段,这是一个文本字符串数组。这个SQL命令

Select "Table"."Field" From "Table";

以数组的形式返回值,例如{AA,BB}和{AA,CC}。

现在我在pgAdmin中使用SQL编辑器尝试编写一个SQL命令,该命令将选择值并将它们拆分为单个元素。我尝试了像

这样的结构
    Select "Table"."Field[1]", "Table"."Field[2]" From "Table";

但它不起作用。我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

见这个例子:

创建表格:

CREATE TABLE array_tab (   ar text[] )

插入示例日期:

insert into array_tab (ar) select string_to_array('aa~^~bb~^~cc', '~^~')

选择您需要的日期:

select ar[1],ar[2],ar[3] from array_tab ;

答案 1 :(得分:0)

双引号"围绕对象名称。你的错误是将方括号放在双引号内,因此PostgreSQL正在寻找一个名为Field[1]的表字段,而不是字段Field的第一个元素。

你应该写:

SELECT "Table"."Field"[1]

我真的建议你永远不要在表名中使用小写字符,数字和下划线_。它使生活变得如此简单,因为你避免了所有的引用问题。