<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)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费的涩涩视频在线播放| 四虎成年永久免费网站 | 久草免费福利资源站| 色噜噜AV亚洲色一区二区| 一二三四在线观看免费中文在线观看| 国产精品va无码免费麻豆 | 成人午夜免费视频| 亚洲无码精品浪潮| 性色av免费观看| 亚洲中文字幕无码久久2020| 在线免费观看色片| 牛牛在线精品观看免费正 | 2021久久精品免费观看| 亚洲国产精品乱码在线观看97| 成人无码区免费A片视频WWW| 亚洲国产美女精品久久久| 免费一级特黄特色大片在线观看| 一级做α爱过程免费视频| 亚洲AV无码久久精品成人| 中文字幕无码播放免费| 亚洲a∨无码精品色午夜| 久久精品国产精品亚洲人人| 久久99精品国产免费观看| 亚洲18在线天美| 免费在线观看黄网| 免费在线看污视频| 亚洲人成77777在线观看网| mm1313亚洲国产精品美女| 亚洲毛片免费视频| 全免费a级毛片免费看不卡| 香蕉国产在线观看免费| 亚洲综合无码一区二区| 成人黄18免费视频| 韩国免费A级毛片久久| 亚洲经典在线中文字幕| 免费一级一片一毛片| 色猫咪免费人成网站在线观看| 亚洲熟女综合一区二区三区| 色噜噜AV亚洲色一区二区| 免费看国产精品3a黄的视频| 国产精品福利在线观看免费不卡|