2017-10-19 109 views
-1

去除串開始在我的桌子我有一個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_Aderived_col_A

回答

1

你可以使用regexp_replace()來處理這個問題:

SELECT regexp_replace(Col_A, '_qq.*$',NULL) from your_table; 

這將取代一切之後(含)_qq使用空。

0

您必須創建新列並使用下句更新:

select split_part(<string>, '_qq'::text, 1); 

--EXAMPLE:

select split_part('Cat_old_qq34569er', '_qq'::text, 1); 

- 結果:Cat_old

我希望這能幫你。問候。