Postgresql 在postgres中将全名拆分为名字和姓氏
我对将全名分为名字和姓氏的功能感到困惑。例如,我有这些记录Postgresql 在postgres中将全名拆分为名字和姓氏,postgresql,Postgresql,我对将全名分为名字和姓氏的功能感到困惑。例如,我有这些记录 fullname --------------- john john doe john nick doe john smith nick doe 我期待这样的结果 名字 姓氏 厕所 厕所 厕所 雌鹿 约翰·尼克 雌鹿 约翰·史密斯·尼克 雌鹿 您可以在此处使用REGEXP\u REPLACE: 选择 全名, REGEXP_替换(全名'\s+\s+$','')为fir
fullname
---------------
john
john doe
john nick doe
john smith nick doe
我期待这样的结果
名字
姓氏
厕所
厕所
厕所
雌鹿
约翰·尼克
雌鹿
约翰·史密斯·尼克
雌鹿
您可以在此处使用
REGEXP\u REPLACE
:
选择
全名,
REGEXP_替换(全名'\s+\s+$','')为firstname,
REGEXP_替换(全名“^.*\s+(\s+$”,“\1”)为lastname
从你的桌子上;
下面是对用于姓氏的regex模式的解释(用于姓氏的模式是对其的简化):
^从全名开始
*贪婪地匹配所有内容,直到
\s+最后一个空格(s)
(\S+)然后匹配并捕获全名中的最后一个单词(即姓氏)
$全名的结尾
然后,我们使用\1
替换为捕获的姓氏