我有一个查询:
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”在应为“ suarez-suarez J”时输出“ john doe”,或在“ suarez-suarez J”或“ suarez / john doedoe”时输出“ john doedoe” '。
如何获取带有姓氏和名字的首字母的字符串?
我创建了一个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');
即时消息也有些混乱,但是给定您列出的名称,如果您想要姓氏+空格+首字母缩写,那么就可以完成此工作。
SELECT LEFT('suarez/john doe', charindex('/', 'suarez/john doe') - 1) + ' ' + SUBSTRING('suarez/john doe', charindex('/', 'suarez/john doe') + 1, 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句