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 に答える