0

我的专栏看起来像这样

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

4

1 回答 1

2

正如@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

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

于 2012-07-25T05:37:43.910 回答