2017-10-15 4 views
1

最後のスペースから区切られた下の文字列(1つの列に存在する)を分割したいと思います。以下の3行の場合、私は次のような出力にしたいpostgresのstringの終わりからsplit_part関数を適用する方法

OUTPUT:

Country    STATE    STREET UNIT 
AU     NSW    2   12 
AU     NSW       51 
AU     NSW       12 

INPUT:2034
12 2 NOELA PLACE ST MARYS NSW 2760 AU
51 MALABAR ROAD SOUTH COOGEE NSW AU
12リスティングストリートウィンストンヒルズNSW 2153 AU

答えて

0

もちろん、このような条件付き解析は信頼できません。

t=# with v(a) as(values('12 2 NOELA PLACE ST MARYS NSW 2760 AU') 
,('51 MALABAR ROAD SOUTH COOGEE NSW 2034 AU') 
,('12 LISTER STREET WINSTON HILLS NSW 2153 AU') 
) 
select reverse(split_part(reverse(a),' ',1)), reverse(split_part(reverse(a),' ',3)), case when split_part(a,' ',2) ~ '\d' then split_part(a,' ',2) end st, split_part(a,' ',1) un from v; 
reverse | reverse | st | un 
---------+---------+----+---- 
AU  | NSW  | 2 | 12 
AU  | NSW  | | 51 
AU  | NSW  | | 12 
(3 rows) 
関連する問題