我在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