SQL 查询CET使用领悟
时间:2021-07-01 10:21:17
帮助过:8人阅读
etcRecommandINfo2(c_PRecommendNo,c_RecommendName,c_RecommendNo,i_Rtype,c_ServerDir,c_Pic_Recommend,tLevel)
as
(
select c_PRecommendNo,c_RecommendName,c_RecommendNo,i_Rtype,c_ServerDir,c_Pic_Recommend,
0 AS tLevel
from Recommend
where c_RecommendNo
=‘RC20150514142804‘
union all
select rd.c_PRecommendNo,rd.c_RecommendName,rd.c_RecommendNo,rd.i_Rtype,rd.c_ServerDir,rd.c_Pic_Recommend,et.tLevel
+1 from Recommend rd
inner join etcRecommandINfo2 et
on et.c_PRecommendNo
=rd.c_RecommendNo
)
select c_PRecommendNo,c_RecommendName,c_RecommendNo,i_Rtype,c_ServerDir,c_Pic_Recommend,tLevel
from etcRecommandINfo2;
看完这段代码,你也许醉了,其实这段代码,主要就是用到了CET,先说说这个用到查询的这个表:
c_RecommendNo
|
标识表中唯一
|
c_PRecommendNo
|
标识该条数据的上一条数据 |
这是主要的2个字段,这两个字段是递归的根源。
这个语句可以按3步来理解,如下图:
1、查询基础数据;
2、基础数据关联条件,查询全部数据;
3、将查询的数据,通过with归类显示处理;
*************************************************************
**************************************************************
备注:语句2中on后面语句也很关键,=左右的顺序不能互换,互换之后,查询的结果也不相同;记得理解的顺序很关键,理解了顺序,就能查询自己想要的结果;
CET的详细内容可以参考链接:
http://www.cnblogs.com/kissdodog/archive/2013/06/24/3153012.html
SQL 查询CET使用领悟
标签: