Sql server 如何在sqlserver中实现三次样条曲线

Sql server 如何在sqlserver中实现三次样条曲线,sql-server,ssms,spline,Sql Server,Ssms,Spline,我试图创建一个SQL函数,生成插值三次样条曲线所需的多项式。在基于对象的编程语言中,这不会给我带来太多麻烦,因为我可以按顺序处理数据点,但我对SQL不熟悉,不熟悉用于解决SQL中此类问题的方法 我一直在引用这篇文章,它为我试图完成的相同任务提供了一个框架,但我相信它使用的是不同的SQL发行版,它似乎能够创建类似对象的项。下面的代码代表了我到目前为止所能完成的工作,我很难理解如何继续下去 Select [Option Value] As [T] ,[idx], LAG([Option Valu

我试图创建一个SQL函数,生成插值三次样条曲线所需的多项式。在基于对象的编程语言中,这不会给我带来太多麻烦,因为我可以按顺序处理数据点,但我对SQL不熟悉,不熟悉用于解决SQL中此类问题的方法

我一直在引用这篇文章,它为我试图完成的相同任务提供了一个框架,但我相信它使用的是不同的SQL发行版,它似乎能够创建类似对象的项。下面的代码代表了我到目前为止所能完成的工作,我很难理解如何继续下去

Select [Option Value] As [T] ,[idx],
  LAG([Option Value],1) OVER (ORDER BY idx) AS [T-1],
  LEAD([Option Value],1) OVER (ORDER BY idx) AS [T+1],
  0 As [y2],
  0 As [u],
  0 AS [p]
  INTO #Calc
  FROM [#Data]
  ORDER BY [idx]


  Select *,
  ([T] - [T-1])/([T+1] - [T-1]) As Sig

  FROM #Calc

输入表将有11个点在x轴上呈非均匀分布,例如-0.2,1,-0.1,1.2,-0.03,1.6,0.05,2,我希望创建一个函数来提供这些点之间的插值。

这篇文章正在使用,我认为这就是您参考的对象我认为您可能是正确的,CTE表和temp表之间的差异是因为您可以在新列的定义中引用以前定义的列吗?在大多数情况下,您可以。CTE的问题是,您必须立即从CTE中选择或实现另一个CTE,以防止您以后在代码中多次引用它。由于您是SQL Server新手,我现在只想使用诱惑函数,除非您需要用于递归的CTE或其他东西。那篇文章正在使用,我认为这就是您所引用的对象我认为您可能是正确的,CTE表和temp表之间的差异是因为您可以在新列的定义中引用以前定义的列吗?在大多数情况下,您可以。CTE的问题是,您必须立即从CTE中选择或实现另一个CTE,以防止您以后在代码中多次引用它。由于您是SQL Server的新手,除非您需要用于递归或其他方面的CTE,否则我现在只使用诱惑函数。