将LastName,FirstName更改为LastName,FirstInitial

时间:2016-10-31 04:21:38

标签: sql oracle

我确定这非常简单,但我如何将LastName,FirstName转换为LastName,FirstInitial?

例如,将史密斯,约翰改为史密斯,约翰逊,约翰逊,约翰逊,J等等。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果是LastName和FirstName列:

select  LastName,substr(FirstName,1,1) 
from    mytable
;

如果在一列中保存了全名:

select  substr(fullname,1,instr(fullname || ',',',')-1) || substr(fullname,instr(fullname || ',',','),2) 
from    mytable
;

select  regexp_replace (fullname,'([^,]*,?)(.).*','\1\2')
from    mytable
;

答案 1 :(得分:0)

这是一种方法,只使用"标准" instrsubstr。假设您的输入是'Smith,John'格式的单个字符串:

select substr(fullname, 1, instr(fullname, ',')+1) from yourtable;

yourtable是表格的名称,fullname是列的名称。

instr(fullname, ',') finds the position of the comma within the input string (it would be 6 in 'Smith,John'); then substr takes the substring that begins at the first position (the 1 in the function call) and ends at the position calculated by instr`,加1(也可以获得第一个首字母)。