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爱丽丝母鹿”
感谢
不知道关于 “更好”,但我通常喜欢在存储过程的功能,这样我可以使用'APPLY'。 – 2014-10-27 20:43:11