非确定性函数的CTE和分组

时间:2016-06-21 16:34:39

标签: sql-server common-table-expression

我已经读到使用CTE的一个很好的理由是像微软所说的那样:

  

通过从标量子选择派生的列启用分组,   或者是一个不确定或具有外部访问权限的函数。

所以我尝试使用SQL 2014和Adventure Works 2012 DB这个例子,它有效!

SELECT DateDiff(D,H.OrderDate,GETDATE()), Count(*)
FROM   Sales.SalesOrderHeader H
GROUP BY DateDiff(D,H.OrderDate,GETDATE())
ORDER BY DateDiff(D,H.OrderDate,GETDATE())

这似乎不正确,因为GETDATE()是不确定的!

真的有两个问题:

  1. 任何人都知道为什么这个例子有用,似乎不应该。
  2. 有没有人有一个CTE帮助的类似查询的好例子
  3. 克服“非确定性功能组”的限制?

    谢谢!

0 个答案:

没有答案