SQLite:使用 SELECT 而不是 TEMP TABLE



我有一个SQLite查询,它创建一个临时表,后跟一个SELECT语句。我想弄清楚如何在不使用临时表的情况下编写查询,以便我可以将其用作视图。有人可以指出我这样做的一些例子吗?

如果您不必在view中使用temptable,则可以使用以下语句从select创建视图:

CREATE VIEW v_tracks 
AS 
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks

从现在开始,您只需使用以下简单查询:

SELECT
*
FROM
v_tracks;

在这里尝试一下

如果必须在视图中使用 temp 表,则可以使用CTEs,CTE 是在单个语句的执行范围内定义的临时结果集,可以在视图中使用。

这里的例子:

CREATE VIEW vSalesStaffQuickStats
AS
WITH SalesBySalesPerson (SalesPersonID, NumberOfOrders, MostRecentOrderDate)
AS
(
SELECT SalesPersonID, COUNT(*), MAX(OrderDate)
FROM Sales.SalesOrderHeader
GROUP BY SalesPersonID
)
SELECT E.EmployeeID,
EmployeeOrders = OS.NumberOfOrders,
EmployeeLastOrderDate = OS.MostRecentOrderDate,
E.ManagerID,
ManagerOrders = OM.NumberOfOrders,
ManagerLastOrderDate = OM.MostRecentOrderDate
FROM   HumanResources.Employee AS E
INNER JOIN SalesBySalesPerson AS OS
ON E.EmployeeID = OS.SalesPersonID
LEFT OUTER JOIN SalesBySalesPerson AS OM
ON E.ManagerID = OM.SalesPersonID 

我希望它有所帮助。

最新更新