PostgreSQL的:内置功能与某些模式
问题描述:
去除串开始在我的桌子我有一个col_A
象下面这样:PostgreSQL的:内置功能与某些模式
col_A
-----------------------------------
Dog_qq123r_sdf
Cat_old_qq34569er
Bird_tweet_A_qqikdf0_qq_sdfad
Cow_moo_moo_qq1_qq2_qq3
我想从col_A
创建一个派生列derived_col_A
。规则是'remove everything starting from first _qq'
col_A derived_col_A
------------------------------------------------
Dog_qq123r_sdf Dog
Cat_old_qq34569er Cat_old
Bird_tweet_A_qqikdf0_qq_sdfad Bird_tweet_A
Cow_moo_moo_qq1_qq2_qq3 Cow_moo_moo
是否有一个内置的功能,可以改变col_A
到derived_col_A
?
答
你可以使用regexp_replace()
来处理这个问题:
SELECT regexp_replace(Col_A, '_qq.*$',NULL) from your_table;
这将取代一切之后(含)_qq
使用空。
答
您必须创建新列并使用下句更新:
select split_part(<string>, '_qq'::text, 1);
--EXAMPLE:
select split_part('Cat_old_qq34569er', '_qq'::text, 1);
- 结果:Cat_old
我希望这能帮你。问候。