我有一个大表键(keyid,data)。在此表中,数据由以/分隔的文本组成。 例如x / y / z。我希望为表中datails列中存储的所有值提取第二个字段(在示例y中)。
我尝试使用这些
dblp1=# select regexp_split_to_array((select key from keytable),'/') as key_split;
错误:用作表达式
的子查询返回多行
dblp1=# SELECT split_part((select key from keytable), '/', 2);
错误:用作表达式
的子查询返回多行
两者都在单字符串上工作。
答案 0 :(得分:1)
非常接近。您需要将函数包装在列名称周围,如下所示:
select split_part(key, '/', 2) from keytable;