如何从Teradata SQL中的1列中包含的name和surename创建2个新列



我在Teradata SQL中有一个表,如下所示:

NAME
Johnson Simon
安是什么
Pitt House标志
Grahap Michael Josh

使用STRTOK

它根据指定的分隔符列表拆分标记,并返回第n个标记,其中n由tokennum参数指定。

SELECT NAME, STRTOK(your_table.NAME, ' ', 1) as SURNAME, STRTOK(your_table.NAME, ' ', 2) as NAME_2 FROM your_table;

看起来第一个空格之前的所有内容都是姓氏。其他的都是name_2。一种方法是regexp_substr():

select regexp_substr(name, '^[^ ]+') as surname,
regexp_replace(name, '^[^ ]+ ', '') as name_2

相关内容

最新更新