【发布时间】:2023-03-22 16:14:01
【问题描述】:
我知道 split_part() 可以分隔由分隔符分隔的字符串元素组成的连接字符串,如下所示:
SELECT split_part(col, ',', 1) AS col1
, split_part(col, ',', 2) AS col2
, split_part(col, ',', 3) AS col3
, split_part(col, ',', 4) AS col4
FROM tbl;
但是,我有一种情况,连接字符串中的元素是多余的,即有重复的元素。 如何仅检索唯一的字符串元素(子字符串),即不重复相同的子字符串?
【问题讨论】:
-
请以表格文本形式提供示例数据和所需结果。您想拆分为列,那么您想如何处理这些重复项?
-
我认为我的描述非常准确 - 如果您只阅读过它,您就会知道我想要的重复值是什么。我想将带有分隔值的字符串列拆分为单独的列,但没有重复值,只有唯一值。
-
示例日期可能会消除您问题中的一些歧义。如果唯一元素小于 4 怎么办?你期望什么?输入
1,1,1,1,1或1,2,1,2,1,2,3,4,3,4或1,1,2,2,3,3,4,4,5,5?
标签: sql string postgresql split distinct