【发布时间】:2014-06-02 05:42:24
【问题描述】:
更新: 我将第一部分重写为基于集合的方法:
declare @AllRunnersString nvarchar(200) ='2342;1228;1075;266;423;2849;1690;488;162;1153;1666'
DECLARE @pairs table
(p1 int,p2 int)
insert into @pairs(p1, p2)
select sp1.value as p1, sp2.value as p2
from dbo.split(';', @AllRunnersString) sp1
inner join dbo.split(';', @AllRunnersString) sp2
on sp1.value <> sp2.value
这会生成对。
Head2Head 获取 id 并返回一个包含两个 id 的所有事件的表。 @rtn 表( eventid int, p1 整数, p2 整数, ldiff 浮动, pdiff 浮动, 赢家诠释 )
我需要获取所有这些事件并将它们存储在一个表格中,用于来自@pairs 的所有组合。
使用基于过程的方法,我会在@pairs 上运行光标,并使用过程计算每对的值并插入到最终表中。
也许这部分有一个基于集合的方法..
【问题讨论】:
-
您是否考虑过以应有的方式编写 SQL,即作为基于 SET 的操作?您基本上是在面向集合的环境中编写程序代码。
-
是的,你是对的,我已经修改了代码。尽管如此,使用基于集合的逻辑执行某些编码“操作”比其他操作更难
标签: sql-server performance tsql stored-procedures