2014-10-27 59 views
1

我有一小段代碼需要一遍又一遍地執行。我將一個字符串分爲第一個,中間和最後一個名字。在SQL中返回固定數量值的最有效方法

DECLARE @SpaceIndex int, 
    @LastSpaceIndex int, 
    @Length int 

SET @Length = LEN(@Name) 
SET @LastSpaceIndex = @Length - CHARINDEX(' ', REVERSE(@Name)) 
Set @SpaceIndex = CHARINDEX(' ', @Name) 

    SELECT SUBSTRING(@Name, 0, @SpaceIndex) As FirstName, 
     SUBSTRING(@Name, @SpaceIndex + 1, @LastSpaceIndex - @SpaceIndex) As MiddleName, 
     SUBSTRING(@Name, @LastSpaceIndex + 1, @Length - @LastSpaceIndex) As LastName 

我決定把它變成一個表格函數或帶有輸出參數的存儲過程,但我不確定哪種方法更好。

在SQL中返回三個值的最佳方法是什麼?

僅供參考名稱可以是這樣的: 「李四」,「李四」,「約翰·w ^李四」,「簡Whilma愛麗絲母鹿」

感謝

+0

不知道關於 「更好」,但我通常喜歡在存儲過程的功能,這樣我可以使用'APPLY'。 – 2014-10-27 20:43:11

回答

相關問題