DB2SQL来提取空间或字符前后的字符串



我有一个字符串,它的全名中有空格。我想提取名字和姓氏。

例如,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 

最新更新