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