zoukankan      html  css  js  c++  java
  • SQL 查询CET使用领悟

      用到sql的遍历循环查询,如果不考虑用CET,估计又到了自己造轮子的时代了,现在觉得sql的CET确实是个好东西,针对SQL的递归查询,很是不错的方法;

    with 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

  • 相关阅读:
    ORACLE 11.2.0.4 OCR VOTING DISK 模拟恢复场景
    Oracle Enterprise Linux 6.4 下配置vncserver
    Oracle Enterprise Linux 6.4 下挂载ISCSI 设备
    关于Solaris 的磁盘的分区
    【Google Earth】pro之视频录制
    【爱江山越野跑】ITRA积分认证流程
    android发送邮件
    android手机有多个摄像头,打开其中一个
    Android截图
    Android中的ACCESS_MOCK_LOCATION权限使用Demo
  • 原文地址:https://www.cnblogs.com/xibei666/p/4503765.html
Copyright © 2011-2022 走看看