偶遇一個需求:想按某個指定符號分割之后,提取字符。
例如:tag = '休閑,娛樂,運動,玩耍',想提取"休閑"這個詞。
方法一:string_to_array
select string_to_array('休閑,娛樂,運動,玩耍',','); ------------------------------ -- {休閑,娛樂,運動,玩耍} -- (1 row)
select tag[1] from ( select string_to_array('休閑,娛樂,運動,玩耍',',') as tag ) a --------------------- -- 休閑 -- (1 row)
如此實現,但是string_to_array需要子查詢,當與其他自動group by一起查詢的時候就顯得及其不方便,因此可使用方法二。
方法二:split_part
select split_part('休閑,娛樂,運動,玩耍',',',1); ----------------- -- 休閑 -- (1 row)
select split_part('abc~@~def~@~ghi','~@~',2) ----------------- -- def -- (1 row)
END 2018-08-01 17:03:18