我有一个字符串,它的全名中有空格。我想提取名字和姓氏。
例如,displayname有firstname middlename lastname:
John D Cooper
Mary L Finch
我想得到如下所示的结果。
JohnCooper
MaryFinch
我正在使用passthrough进入DB2数据库,但不知道该使用哪个函数。
我使用PROC SQL中的扫描函数来获得结果。
proc sql;
create table want as
select (scan(displayname,1,' ')||scan(displayname,-1,' ') as fullname
from have
;
quit;
我很感激你的帮助。提前谢谢。
试试这样的方法-它使用SUBSTR提取第一个单词(从第一个"到最后一个"的所有单词(
select concat(
substr(name, 1, locate_in_string(name, ' ', 1, 1, CODEUNITS32)-1) ,
substr(name, locate_in_string(name, ' ', -1, 1, CODEUNITS32)+1,length(name) - locate_in_string(name, ' ', -1, 1, CODEUNITS32)+1)
)
from table
尝试使用正则表达式。例如
WITH I(I) AS (VALUES
('John D Cooper')
,('Mary L Finch')
)
SELECT I, REGEXP_REPLACE(I,'(w+)s+ws+(w+)','12') FROM I
将返回
I |2
-------------|----------
John D Cooper|JohnCooper
Mary L Finch |MaryFinch