繁体   English   中英

将名称与单个列分隔开

[英]separating names from a single column

我的专栏看起来像这样

Fullname
--------------------------
Joseph Davis Matthews
Leonardo Maser Davidson
Leo Garces S. Yu

我想分开姓氏以便于搜索,所以我做了这个子串函数

RIGHT(dbo.Fullname, 40) as lastname 

我的查询结果显示:

Lastname
---------------------------
Joseph Davis Matthews
Leonardo Maser Davidson
Leo Garces S. Yu

源列是char(40) ,是否有更简单的脚本将列名与列分开?

我正在使用SQL Server 2008

正如@marc_s所提到的,你假设姓氏只是最后一个单词。 假设这是您想要的,您可以通过执行以下操作获取字符串的最后一个单词:

declare @names as table
(
    name varchar(40)
)

insert into @Names values ('Joseph Davis Matthews')
insert into @Names values ('Leonardo Maser Davidson')
insert into @Names values ('Leo Garces S. Yu')


SELECT RIGHT(name,
        COALESCE(
            NULLIF(
                CHARINDEX(' ', REVERSE(name)) - 1,
                -1),
            LEN(name)))
FROM @names

但同样,它假设每个人姓氏只有一个字,这是一个不正确的假设

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM