PostgreSQL:内置函数删除以特定模式开头的子字符串
PostgreSQL: built-in function to remove substring starting with certain pattern
在我的 table 中,我有一个 col_A
如下所示:
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
?
您必须创建新列并使用下一句更新它:
select split_part(<string>, '_qq'::text, 1);
--示例:
select split_part('Cat_old_qq34569er', '_qq'::text, 1);
--结果:Cat_old
希望对您有所帮助。你好。
您可以使用 regexp_replace()
来处理这个问题:
SELECT regexp_replace(Col_A, '_qq.*$',NULL) from your_table;
这会将 _qq
之后(包括)之后的所有内容替换为 null。
在我的 table 中,我有一个 col_A
如下所示:
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
?
您必须创建新列并使用下一句更新它:
select split_part(<string>, '_qq'::text, 1);
--示例:
select split_part('Cat_old_qq34569er', '_qq'::text, 1);
--结果:Cat_old
希望对您有所帮助。你好。
您可以使用 regexp_replace()
来处理这个问题:
SELECT regexp_replace(Col_A, '_qq.*$',NULL) from your_table;
这会将 _qq
之后(包括)之后的所有内容替换为 null。