0

我对 CTE 很陌生——当我们定义一个公用表表达式时,我们是否将它创建为存储过程、视图等?例如,如果我有:

USE AdventureWorks2012;
GO
WITH DirectReports(ManagerID, EmployeeID, Title, EmployeeLevel) AS 
(
    SELECT ManagerID, EmployeeID, Title, 0 AS EmployeeLevel
    FROM dbo.MyEmployees 
    WHERE ManagerID IS NULL
    UNION ALL
    SELECT e.ManagerID, e.EmployeeID, e.Title, EmployeeLevel + 1
    FROM dbo.MyEmployees AS e
        INNER JOIN DirectReports AS d
        ON e.ManagerID = d.EmployeeID 
)
SELECT ManagerID, EmployeeID, Title, EmployeeLevel 
FROM DirectReports
ORDER BY ManagerID;
GO

我会在哪里存储这个?我希望我说得通。这是一个我想存储在某个地方以供重用的查询。

4

1 回答 1

1

您将使用视图。虽然这是一个分层查询,但它仍然只是这样:一个查询。

于 2013-10-02T13:49:33.050 回答