Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL中返回固定数量值的最有效方法_Sql Server_Performance_Tsql_Stored Procedures - Fatal编程技术网

Sql server 在SQL中返回固定数量值的最有效方法

Sql server 在SQL中返回固定数量值的最有效方法,sql-server,performance,tsql,stored-procedures,Sql Server,Performance,Tsql,Stored Procedures,我有一小段代码需要反复执行。我将一个字符串拆分为名字、中间名和姓氏 DECLARE @SpaceIndex int, @LastSpaceIndex int, @Length int SET @Length = LEN(@Name) SET @LastSpaceIndex = @Length - CHARINDEX(' ', REVERSE(@Name)) Set @SpaceIndex = CHARINDEX(' ', @Name) SELECT SUBSTRING

我有一小段代码需要反复执行。我将一个字符串拆分为名字、中间名和姓氏

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·多伊”、“简·惠玛·爱丽丝·多伊”


谢谢

最有效的方法是在客户端软件中处理此问题。假设您不能,那么输出参数似乎是这两种方法中更有效的方法

资料来源:

  • [2013]
  • [2009]
不确定“更好”,但我通常更喜欢函数而不是存储过程,这样我就可以使用
APPLY