postgresql根據正則表達式切分,並獲取切分后的某一個值
一。需求如下
出發地路線【白市驛收費站】;通行路線【繞城高速—G65包茂高速—G65草壩場收費站—G65包茂高速—G42滬蓉高速】;目的地路線【G42華鎣收費站】。
出發地路線【【白市驛收費站】】;通行路線【【繞城高速—G65包茂高速—G65草壩場收費站—G65包茂高速—G42滬蓉高速】】;目的地路線【【G42華鎣收費站】】。
目的:獲取上述文字中的通行路線
二。postgresql切分函數簡介
1.split_part
特點:可以直接獲取切分的值,但是不能用正則表達式切分,所以不考慮


2.regexp_split_to_table
特點:可以用正則,但是切分完是多行,所以不考慮


3.regexp_split_to_array
特點:可以用正則,切分完是數組,用數組下標獲取該值,故用該方法
注:
注意數組取下標值的方式


三。具體sql如下
select rri_id,order_no,
(regexp_split_to_array((regexp_split_to_array(roads,'【+'))[3],'】+'))[1] as roads
from req_road_info
where rri_id in (624539,624506)
order by order_no;

