如何在特定字符后输出字符串?

用户名

我有一个查询:

  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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章