公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。 @H_502_0@CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。 @H_502_0@与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。 @H_5020@CTE可用于: @H502_0@1.创建递归查询(我个人认为CTE最好用的地方) @H_502_0@2.在同一语句中多次引用生成的表 @H_5020@CTE优点: @H502_0@使用 CTE 可以获得提高可读性和轻松维护复杂查询的优点。 @H_502_0@查询可以分为单独块、简单块、逻辑生成块。之后,这些简单块可用于生成更复杂的临时 CTE,直到生成最终结果集。 @H_5020@CTE可使用的范围: @H502_0@可以在用户定义的例程(如函数、存储过程、触发器或视图)中定义 CTE。 @H_5020@下面看一个简单的CTE例题: @H502_0@把test表中salary最大的id记录保存在test_CTE中,再调用 @H_502_0@<div class="codetitle"><a style="CURSOR: pointer" data="8138" class="copybut" id="copybut8138" onclick="doCopy('code8138')"> 代码如下: