将包括标题的全名拆分为单独的字段

时间:2019-03-08 14:15:15

标签: sql string split db2

我试图在一个看似古老的DB2版本中将全名字段拆分为单独的字段,因此我不能使用诸如reverse之类的新功能。

示例

FULL_NAME

艾尔顿·约翰先生

基努·里维斯先生

我想回来

头衔第一名

艾尔顿·约翰先生

基努·里维斯先生

我很沮丧,我设法用

姓氏
RIGHT(NAME, LENGTH(NAME) - LOCATE( ' ',NAME, LOCATE(' ', NAME)+1)) AS last_name

但是DB2并不是我真正的事,因此任何帮助都将受到赞赏!

谢谢!

1 个答案:

答案 0 :(得分:2)

DB2支持regexp_substr(),因此您应该能够做到:

select regexp_substr(name, '[^ ]+', 1, 1) as title,
       regexp_substr(name, '[^ ]+', 1, 2) as firstname,
       regexp_substr(name, '[^ ]+', 1, 3) as lastname

但是如果您没有reverse(),则可能也没有此功能。