繁体   English   中英

Teradata解析全名字段sql

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM