PostgreSQL数据库切割和组合字段函数

PostgreSQL数据库切割和组合字段函数,第1张

概述Postgresql里面内置了很多的实用函数,下面介绍下组合和切割函数 环境:PostgreSQL 9.1.2      CENTOS 5.7 final 一.组合函数 1.concat a.语法介绍 concat(str "any" [, str "any" [, ...]])Concatenate all but first arguments with separators.The f

Postgresql里面内置了很多的实用函数,下面介绍下组合和切割函数
环境:Postgresql 9.1.2
CENTOS 5.7 final

一.组合函数
1.concat
a.语法介绍

concat(str "any" [,str "any" [,...]])Concatenate all but first arguments with separators.The first parameter is used as a separator. NulL arguments are ignored.

b.实际例子:

postgres=# create table t_kenyon(ID int,name varchar(10),remark text);CREATE tablepostgres=# insert into t_kenyon values(1,'test','kenyon'),(2,'just','china'),(3,'iam','lovingU');INSERT 0 3postgres=# insert into t_kenyon values(4,null);INSERT 0 1postgres=# insert into t_kenyon values(5,null,'adele');INSERT 0 1postgres=# select * from t_kenyon; ID | name | remark  ----+------+---------  1 | test | kenyon  2 | just | china  3 | iam  | lovingU  4 | test |   5 |      | adele(5 rows)postgres=# select concat(ID,name,remark) from t_kenyon;   concat    ------------- 1testkenyon 2justchina 3iamlovingU 4test 5adele(5 rows)

c.说明
concat函数纯粹是一个拼接函数,可以忽略null值拼接,拼接的值没有分隔符,如果需要分割符,则需要用下面的函数concat_ws。

2.concat_ws
a.语法介绍

concat_ws(sep text,...] ])Concatenate all but first arguments with separators.The first parameter is used as a separator.NulL arguments are ignored.

b.实际应用

postgres=# select concat_ws(',',ID,remark) from t_kenyon;   concat_ws   --------------- 1,test,kenyon 2,just,china 3,iam,lovingU 4,test 5,adele(5 rows)postgres=# select concat_ws('_',remark) from t_kenyon;   concat_ws   --------------- 1_test_kenyon 2_just_china 3_iam_lovingU 4_test 5_adele(5 rows)postgres=# select concat_ws('',remark) from t_kenyon;  concat_ws  ------------- 1testkenyon 2justchina 3iamlovingU 4test 5adele(5 rows)postgres=# select concat_ws('^_*',remark) from t_kenyon;     concat_ws     ------------------- 1^_*test^_*kenyon 2^_*just^_*china 3^_*iam^_*lovingU 4^_*test 5^_*adele(5 rows)

c.说明 concat_ws函数比concat函数多了分隔符的功能,其实就是concat的升级版,假如分隔符为'',则取出来的结果和concat是一样的。concat_ws分隔符还支持多个字符作为分隔符的,日常用得更多的可能是||。

二、切割函数
1.split_part
a.语法介绍

split_part(string text,delimiter text,fIEld int)Split string on delimiter and return the given fIEld (counting from one)

b.实际例子

postgres=# select split_part('abc~@~def~@~ghi','~@~',2); split_part ------------ def(1 row)postgres=# select split_part('Now|year|month','|',3); split_part ------------ month(1 row)

c.说明
该函数对按分隔符去取某个特定位置上的值非常有效果

2.regexp_split_to_table
a.语法介绍

regexp_split_to_table(string text,pattern text [,flags text])Split string using a POSIX regular Expression as the delimiter.

b.使用例子

postgres=# SELECT regexp_split_to_table('kenyon,love,china,!','); regexp_split_to_table ----------------------- kenyon love china !(5 rows)--按分割符切割postgres=# SELECT regexp_split_to_table('kenyon,china loves',E'\s'); regexp_split_to_table ----------------------- kenyon,china loves(3 rows)--按字母切割postgres=# SELECT regexp_split_to_table('kenyon,china',E'\s*'); regexp_split_to_table ----------------------- k e n y o n,c h i n a(13 rows)

3.regexp_split_to_array
a.语法介绍

regexp_split_to_array(string text,flags text ])Split string using a POSIX regular Expression as the delimiter.

b.实际例子

postgres=# SELECT regexp_split_to_array('kenyon,');  regexp_split_to_array   -------------------------- {kenyon,"",!}(1 row)postgres=# SELECT regexp_split_to_array('kenyon,china!','s*');             regexp_split_to_array             ----------------------------------------------- {k,e,n,y,o,",l,v,c,h,i,a,!}(1 row)

c.说明 上面用到的flag里的s*表示split all,E'\s'表示转义空格

总结

以上是内存溢出为你收集整理的PostgreSQL数据库切割和组合字段函数全部内容,希望文章能够帮你解决PostgreSQL数据库切割和组合字段函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1173658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存