<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    PostgreSQL數據庫切割和組合字段函數

    一.組合函數
    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 TABLE
    postgres=# insert into t_kenyon values(1,'test','kenyon'),(2,'just','china'),(3,'iam','lovingU');
    INSERT 0 3
    postgres=# insert into t_kenyon values(4,'test',null);
    INSERT 0 1
    postgres=# insert into t_kenyon values(5,null,'adele');
    INSERT 0 1
    postgres=# 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, 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=# select concat_ws(',',id,name,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('_',id,name,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('',id,name,remark) from t_kenyon;
      concat_ws  
    -------------
     1testkenyon
     2justchina
     3iamlovingU
     4test
     5adele
    (5 rows)
    
    postgres=# select concat_ws('^_*',id,name,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是一樣的。其功能與mysql中的group_concat函數比較類似,但也有不同,pg中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',',');
     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, pattern text [, flags text ])
    
    Split string using a POSIX regular expression as the delimiter.
    b.實際例子
    postgres=# SELECT regexp_split_to_array('kenyon,love,,china,!',',');
      regexp_split_to_array   
    --------------------------
     {kenyon,love,"",china,!}
    (1 row)
    
    postgres=# SELECT regexp_split_to_array('kenyon,love,,china!','s*');
                 regexp_split_to_array             
    -----------------------------------------------
     {k,e,n,y,o,n,",",l,o,v,e,",",",",c,h,i,n,a,!}
    (1 row)
    c.說明
    上面用到的flag里的s*表示split all

    posted on 2013-05-15 10:24 Mr.lu 閱讀(453) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲成a人片在线观看无码专区| 国产小视频免费观看| www在线观看免费视频| 嫩草在线视频www免费看| 亚洲国产婷婷综合在线精品| 亚洲精品无码高潮喷水在线| 亚洲人成7777| 好男人www免费高清视频在线 | 久久精品免费一区二区| 永久黄网站色视频免费直播| 国产精品亚洲综合久久| 妞干网免费视频在线观看| 亚洲欧洲无码AV不卡在线| 在线看片免费人成视频久网下载 | 国产AV旡码专区亚洲AV苍井空| 2020久久精品国产免费| 国产国拍精品亚洲AV片| aa级毛片毛片免费观看久| 毛片免费观看视频| 亚洲aⅴ天堂av天堂无码麻豆| 国产成人免费视频| 久久久亚洲欧洲日产国码是AV| 免费视频爱爱太爽了| 亚洲欧美日韩自偷自拍| 夜色阁亚洲一区二区三区| 中文字幕av免费专区| 亚洲国产成人五月综合网 | WWW亚洲色大成网络.COM | 亚洲av无码成人影院一区| 亚洲JIZZJIZZ中国少妇中文| 国产做国产爱免费视频| 久久久久亚洲AV无码网站| 四虎影院在线免费播放| 精品国产污污免费网站入口在线| 18亚洲男同志videos网站| 成年男女免费视频网站| h片在线观看免费| 亚洲精品国产综合久久一线| 拍拍拍无挡免费视频网站| 亚洲一级毛片免费观看| 亚洲免费一级视频|