Postgresql - 将列中的数据拆分为两列

我有一个小的Porstgre数据库,其中有一个包含多列的表。 这些列的一个包含这样的数据: test1 (80%)test2 (21%)test3 (40%)等等Postgresql - 将列中的数据拆分为两列

我想什么做的,是能够给个移动到另一列这样的数据看起来就像是:

TEST_COLUMN | PERCENTAGE_COLUMN 

test1 | 80%

test2 | 21%

等等

知道我有超过10,000记录,如果有一种方法来实现这一目标,而不必手动移动任何东西,这将是有益的。 预先感谢

回答:

你可以使用REGEXP

SELECT col ,TRIM(REGEXP_REPLACE(col, '(\(\d+%\))$', '')) AS test_column 

,(REGEXP_MATCHES(col, '(\d+%)\)$'))[1] AS percentage_column

FROM t;

DBFiddle Demo

回答:

你可以正则表达式,或其他文本过程中,如:

t=# with a(v) as (values('test1 (80%)'),('test2 (21%)'),('test3 (40%)')) 

, p as (select v,string_to_array(v,'(') ar from a)

select v, ar[1],translate(ar[2],')','') from p;

v | ar | translate

-------------+--------+-----------

test1 (80%) | test1 | 80%

test2 (21%) | test2 | 21%

test3 (40%) | test3 | 40%

(3 rows)

以上是 Postgresql - 将列中的数据拆分为两列 的全部内容, 来源链接: utcz.com/qa/257782.html

回到顶部