<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 閱讀(454) 評論(0)  編輯  收藏


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


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

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品国产免费无码专区不卡| 亚洲高清美女一区二区三区| 免费看黄的成人APP| 亚洲毛片一级带毛片基地| 国产一区二区三区免费视频| 天黑黑影院在线观看视频高清免费 | 久久精品免费一区二区喷潮| 香蕉视频在线观看免费| 亚洲毛片在线观看| 成人免费视频国产| 99视频在线免费| 免费一级特黄特色大片| 亚洲综合亚洲国产尤物| 亚洲成a人片在线观看日本麻豆 | 亚洲成av人在片观看| 67pao强力打造高清免费| 无遮挡a级毛片免费看| 337p日本欧洲亚洲大胆精品555588| 四虎永久免费地址在线观看| 91精品手机国产免费| 一级午夜免费视频| 亚洲色www永久网站| 亚洲AV日韩AV鸥美在线观看| 亚洲av午夜精品一区二区三区| 亚洲一区在线免费观看| 福利免费在线观看| 色噜噜的亚洲男人的天堂| 亚洲天堂福利视频| 亚洲av无码一区二区三区乱子伦| 国产一级淫片免费播放| 中文字幕无码免费久久99| 免费在线中文日本| yy一级毛片免费视频| 亚洲免费网站观看视频| 亚洲人成电影网站| 久久久久亚洲精品美女| 亚洲一级Av无码毛片久久精品| 四虎成人免费网址在线| 青青草a免费线观a| 久久精品国产免费观看三人同眠| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 |