我三流

いろいろ自分なりにやってみたことを書いています

Postgresql 氏名フィールドに半角全角の混じった空白スペースを挟む場合の「氏」「名」分割方法

こんなテーブルがあり

 name     |    namef    
----------+--------------
田中 一郎 |タナカ イチロウ      
----------+--------------
鈴木 幸子  |スズキ サチコ   

こんなSQL

select split_part(replace(name, ' ',' '),' ',1) first_name, split_part(replace(name, ' ',' '),' ',2) last_name
, split_part(replace(namef, ' ',' '),' ',1) first_namef, split_part(replace(namef, ' ',' '),' ',2) last_namef
  from users;

結果、こうなります

first_name|last_name|first_namef|last_namef    
----------+---------+-----------+----------
田中     |一郎    |タナカ         |イチロウ      
----------+---------+-----------+----------
鈴木       |幸子     |スズキ        |サチコ