首页 > 解决方案 > 将包括标题在内的全名拆分为单独的字段

问题描述

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

例子

全名

埃尔顿·约翰先生

基努·里维斯先生

我想回来

标题 第一 最后

埃尔顿·约翰先生

基努·里维斯先生

我非常接近,我设法得到了姓氏

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

但是 DB2 并不是我真正喜欢的东西,因此非常感谢任何帮助!

谢谢!

标签: sqlstringsplitdb2

解决方案


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(),你可能也没有这个功能。


推荐阅读