sql - 将包括标题在内的全名拆分为单独的字段
问题描述
我试图在一个看似古老的 DB2 版本中将全名字段拆分为单独的字段,因此我不能使用像 reverse 这样的新功能。
例子
全名
埃尔顿·约翰先生
基努·里维斯先生
我想回来
标题 第一 最后
埃尔顿·约翰先生
基努·里维斯先生
我非常接近,我设法得到了姓氏
RIGHT(NAME, LENGTH(NAME) - LOCATE( ' ',NAME, LOCATE(' ', NAME)+1)) AS last_name
但是 DB2 并不是我真正喜欢的东西,因此非常感谢任何帮助!
谢谢!
解决方案
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()
,你可能也没有这个功能。
推荐阅读
- postgis - 如何将 PostGIS 正确安装到 Postgres-XL 中?
- python - Python 性能:重复计算与临时变量
- .net - AspnetZero 现有的 .net 核心和 Angular 项目全球或通用发布程序?
- javascript - 关于Javascript中原型继承的问题
- c# - 将文件放在可以附加到 Xamarin 中针对 Android API 29 的电子邮件的位置
- python - 一段时间后 Pygame 的 logo 又变回来了
- javascript - 具有扩展运算符和 React useState 的 1d 和 2d 数组
- json - 如何使用 jq 展平复杂的 json 结构?
- firebase - Firebase 托管基础知识 - 多个项目
- linux - 共享内存和文件的关系