[英]Teradata Parsing Full Name field sql
我在 Teradata 表中有一个名称值为 char(64) LATIN 数据类型的列。 这些值看起来像“SMITH JOHN J”、“Doe Jane Anne”等。元素之间的空格因值而异。 我可以用左键解析出姓氏,但是解析出名字和中间名首字母/姓名时遇到了麻烦。 我曾尝试使用 index 和 position 函数,但没有得到想要的结果。 有没有人遇到过类似的情况?
你可以使用regexp_substr()
和调整occurence
参数,它指定返回的发生的数量:
select
regexp_substr(name, '\w+', 1, 1) last_name,
regexp_substr(name, '\w+', 1, 2) middle_name,
regexp_substr(name, '\w+', 1, 3) first_name
from mytable
在 Teradata 使用的 PCRE 表示法中, \\w
匹配单词字符(字母数字和下划线)。 你可能想使用正则表达式扩大了一点\\S
(什么,但有一个空格)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.