首页 > 数据库技术 > 详细

【译】高级T-SQL进阶系列 (三)【中篇】:理解公共表表达式(CTEs)

时间:2019-12-24 22:26:46      阅读:103      评论:0      收藏:0      [点我收藏+]
【译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正】

原文链接:传送门

一个简单的CTE例子

如前所述,CTE‘s提供给你了一个方法来更容易的书写复杂的代码以提高其可读性。假设你有列表1所示的代码:

USE AdventureWorks2012;
GO
SELECT YearMonth, ProductID, SumLineTotal 
FROM (
    SELECT CONVERT(CHAR(7),ModifiedDate,120) AS YearMonth
         , ProductID
         , SUM(LineTotal) AS SumLineTotal
    FROM Sales.SalesOrderDetail
    GROUP BY ProductId, CONVERT(CHAR(7),ModifiedDate,120)
    ) MonthlyProductSales
WHERE YearMonth = 2008-06;

 列表1:带有子查询的代码

列表1具有一个SELECTY语句,其带有一个在FROM子句中的子查询。这个子查询是一个具有别名MonthlyProductSales 的派生表,其对ModifiedDate字段的每一个Year/Month组合都总结了其LineTotal 数量。从我的MonthlyProductSales 子查询的结果中,我对结果进行约束,使得其仅仅返回那些年和月为 2008,06的数据行。

 

虽然列表1的代码已经是相当的简洁了,我们可以通过用一个CTE来重写它以提高它的可读性,就像我在列表2中所做的那样。

【译】高级T-SQL进阶系列 (三)【中篇】:理解公共表表达式(CTEs)

原文:https://www.cnblogs.com/qianxingmu/p/12093822.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!