我有一个问题:
select
right( ltrim(rtrim(MEMBER_NAME)),(len(ltrim(rtrim(MEMBER_NAME)))- charindex('/',ltrim(rtrim(MEMBER_NAME))))) as member_name
from member
在member_name上我想在'/'之后输出姓氏和名字的第一个字母。
我遇到的问题是上面的查询,输出一些错误的名称取决于它们是否有更长的名称。
例如,如果我们有一个名字'suarez-suarez / john doe'正在输出'john doe',那应该是suarez-suarez J' 或者'suarez / john doedoe'输出'john doedoe'时它应该是'suarez j'。
如何让它输出带姓氏和名字首字母的字符串?
我创建了http://sqlfiddle.com/#!6/c7a74/1
create table member (member_name varchar(50));
insert into member (member_name)
values ('suarez-suarez/john doe'),
('suarez/john doedoe'),
('suarez/john d'),
('mejia/suzy m'),
('orozco/dady rammmon');
答案 0 :(得分:1)
SELECT LEFT('suarez/john doe', charindex('/', 'suarez/john doe') - 1) + ' ' + SUBSTRING('suarez/john doe', charindex('/', 'suarez/john doe') + 1, 1)