偶遇一个需求:想按某个指定符号分割以后,提取字符。spa
例如:tag = '休闲,娱乐,运动,玩耍',想提取"休闲"这个词。code
select string_to_array('休闲,娱乐,运动,玩耍',','); ------------------------------ -- {休闲,娱乐,运动,玩耍} -- (1 row)
select tag[1] from ( select string_to_array('休闲,娱乐,运动,玩耍',',') as tag ) a --------------------- -- 休闲 -- (1 row)
如此实现,可是string_to_array须要子查询,当与其余自动group by一块儿查询的时候就显得及其不方便,所以可以使用方法二。blog
select split_part('休闲,娱乐,运动,玩耍',',',1); ----------------- -- 休闲 -- (1 row)
select split_part('abc~@~def~@~ghi','~@~',2) ----------------- -- def -- (1 row)
END 2018-08-01 17:03:18string