【发布时间】:2013-03-27 15:56:11
【问题描述】:
我有那种字符串
测试 1|纽约| X,测试 2|芝加哥|Y,测试 3|宾夕法尼亚哈里斯堡| Z
我需要的结果是
Column1 Column 2 Column3
Test 1 new york X
Test 2 chicago Y
Test 3 harrisburg,pa Z
但是运行这个查询
SELECT
split_part(stat.st, '|', 1) Column1,
split_part(stat.st, '|', 2) Column2,
split_part(stat.st, '|', 3) Column3
FROM
(
SELECT
UNNEST (
string_to_array('Test 1|new york| X, Test 2| chicago|Y, Test 3| harrisburg, pa| Z',',')
)
AS st
) stat;
结果是
Column1 Column 2 Column3
Test 1 new york X
Test 2 chicago Y
Test 3 harrisburg
pa Z
Column3 可以是所有内容(| 除外)。匹配它的可能模式。这可以重复 N 次。 STRING 可以是除 | 之外的所有内容字符。
我如何使用regexp_split_to_array() 来设置我想要的结果集?
【问题讨论】:
-
您没有提供足够的信息。 column3 总是一个大写字符吗?你还能告诉 uas 什么?
-
没有 Column3 可以是一切(除了 | )。匹配它的可能模式是
。这可以重复 N 次。 STRING 可以是除 | 之外的所有内容字符。 -
这类信息必须在问题中。请编辑。
标签: sql regex postgresql postgresql-9.1 crosstab