【发布时间】:2018-08-22 08:46:58
【问题描述】:
我需要对该查询使用 split_part 函数:
CREATE TABLE client_group_by_group_test AS SELECT *, SPLIT_PART( groupe,
',', 1 ) AS group1, SPLIT_PART(SPLIT_PART(groupe,',',2),',',-1) AS
group2, SPLIT_PART(SPLIT_PART(groupe,'',3),'',-3) AS group3,
SPLIT_PART(groupe,'',-4) AS group4 FROM planification_client
但它给了我以下错误:
错误:字段位置必须大于零
那么,我该如何处理这里的负值呢?
这种reverse(split_part(reverse(col_A), '_'::text, 1))的声明能用吗?我指的是that question。
编辑:我完全被这个查询所困扰。
更多详细信息:我有一列带有“服务器名称”,另一列带有不同的组,用逗号分隔。
server name| group |
-----------+------------------------------+
XPTERTBIEP9|GRNW_SPO_S_F_H, GRNW_SPO_S_I_J|
我需要得到的输出是如果服务器有多个组,它们需要在不同的列中,比如 group1、group2...
server name| group |group1 |group 2
-----------+------------------------------+--------------+--------------
XPTERTBIEP9|GRNW_SPO_S_F_H, GRNW_SPO_S_I_J|GRNW_SPO_S_F_H|GRNW_SPO_S_I_J
【问题讨论】:
-
是的,当您想要负偏移量时,您应该使用
reverse解决方案 - 它可以工作 (stackoverflow.com/a/46753602) -
好的,我要测试一下。谢谢
-
负索引应该代表什么?距离末端的偏移量?
-
是的,负索引应该代表距离末尾的偏移量。
标签: postgresql split postgresql-9.5