﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-天高云淡-随笔分类-sql</title><link>http://www.cnitblog.com/feiyang0721/category/5770.html</link><description>自得其乐，善于娱乐，知足常乐，助人为乐</description><language>zh-cn</language><lastBuildDate>Thu, 29 Sep 2011 23:58:22 GMT</lastBuildDate><pubDate>Thu, 29 Sep 2011 23:58:22 GMT</pubDate><ttl>60</ttl><item><title>从字符串中取数字</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/10/19/35079.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Fri, 19 Oct 2007 06:11:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/10/19/35079.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/35079.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/10/19/35079.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/35079.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/35079.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/10/19/35079.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/35079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-10-19 14:11 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/10/19/35079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分等级查询（4）</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34750.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Fri, 12 Oct 2007 02:44:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34750.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/34750.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/34750.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/34750.html</trackback:ping><description><![CDATA[<p>最后，我们来看看在ORACLE DATABASE 10G里对于分等级查询功能的增强。</p> <p>Oracle Database 10g给我们带来了一些新特性。这些新特性包括CONNECT_BY_ROOT操作符，CONNECT_BY_ISCYCLE&nbsp;和 CONNECT_BY_ISLEAF伪列，以及NOCYCLE关键字。</p> <p>CONNECT_BY_ROOT操作符可以从根行取数据。举个例子，我们想查询每个用户及他们对应部门的经理名，可以如下考虑：</p> <p>SELECT level, lname "Employee" ,dept_id,CONNECT_BY_ROOT lname "Top Manager"<br>FROM employee<br>START WITH emp_id in<br>(SELECT emp_id<br>FROM employee<br>START WITH manager_emp_id IS NULL<br>CONNECT BY manager_emp_id = PRIOR emp_id<br>AND dept_id != PRIOR dept_id)<br>CONNECT BY PRIOR emp_id = manager_emp_id<br>AND dept_id = PRIOR dept_id; <p>LEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Employee&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEPT_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Top Manager&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>---------------------- -------------------- ---------------------- -------------------- <br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SCOTT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADAMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMITH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ALLEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MARTIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TURNER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JAMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLARK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MILLER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <p>14 rows selected <p>首先，我们找出所有的部门经理的emp_id，然后我们把查询结果作为下个查询的根，查询出我们想要的结果，注意CONNECT_BY_ROOT lname "Top Manager"，它直接返回了部门经理的lname，而不是各个员工主管经理的名字。 <p>在一个树形结构中，循环是不允许的，但是在真实世界中，可能会出现这种情况，下面我们考虑修改我们的事例数据，<pre>UPDATE employee
SET manager_emp_id
 = 7654
WHERE manager_emp_id IS NULL;</pre><pre>现在我们的数据中存在一个循环，如果运行一个如下的查询，我们会得到一个错误ORA-01436：</pre>
<table cellspacing="0" cellpadding="0" width="100%" border="0" unselectable="on">
<tbody>
<tr>
<td valign="top"><pre><b>SELECT LEVEL, LPAD('  ',2*(LEVEL - 1)) || lname "EMPLOYEE", </b>

<b>       emp_id, manager_emp_id</b>

<b>FROM employee</b>

<b>START WITH emp_id = 7839</b>

<b>CONNECT BY PRIOR emp_id = manager_emp_id;</b>



     LEVEL EMPLOYEE                 EMP_ID MANAGER_EMP_ID

---------- -------------------- ---------- --------------

         1 KING                       7839           7654

         2   JONES                    7566           7839

         3     SCOTT                  7788           7566

         4       ADAMS                7876           7788

         3     FORD                   7902           7566

         4       SMITH                7369           7902

         2   BLAKE                    7698           7839

         3     ALLEN                  7499           7698

         3     WARD                   7521           7698

         3     MARTIN                 7654           7698

         4       KING                 7839           7654

         5         JONES              7566           7839

         6           SCOTT            7788           7566

         7             ADAMS          7876           7788

         6           FORD             7902           7566

ERROR:

ORA-01436: CONNECT BY loop in user data







15 rows selected.</pre></td></tr></tbody></table>
<p>在CONNECT BY子句中使用NOCYCLE关键字可以避免这个错误消息，如下：</p>
<table cellspacing="0" cellpadding="0" width="100%" border="0" unselectable="on">
<tbody>
<tr>
<td valign="top"><pre><b>SELECT LEVEL, LPAD('  ',2*(LEVEL - 1)) || lname "EMPLOYEE", </b>

<b>       emp_id, manager_emp_id</b>

<b>FROM employee</b>

<b>START WITH emp_id = 7839</b>

<b>CONNECT BY NOCYCLE PRIOR emp_id = manager_emp_id;</b>



     LEVEL EMPLOYEE                 EMP_ID MANAGER_EMP_ID

---------- -------------------- ---------- --------------

         1 KING                       7839           7654

         2   JONES                    7566           7839

         3     SCOTT                  7788           7566

         4       ADAMS                7876           7788

         3     FORD                   7902           7566

         4       SMITH                7369           7902

         2   BLAKE                    7698           7839

         3     ALLEN                  7499           7698

         3     WARD                   7521           7698

         3     MARTIN                 7654           7698

         3     TURNER                 7844           7698

         3     JAMES                  7900           7698

         2   CLARK                    7782           7839

         3     MILLER                 7934           7782</pre></td></tr></tbody></table>
<p>识别循环CONNECT_BY_ISCYCLE伪列，返回1说明存在一个循环。</p>
<table cellspacing="0" cellpadding="0" width="100%" border="0" unselectable="on">
<tbody>
<tr>
<td valign="top"><pre><b>SELECT lname, CONNECT_BY_ISCYCLE</b>

<b>FROM employee</b>

<b>START WITH emp_id = 7839</b>

<b>CONNECT BY NOCYCLE PRIOR emp_id = manager_emp_id;</b>



LNAME                CONNECT_BY_ISCYCLE

-------------------- ------------------

KING                                  0

JONES                                 0

SCOTT                                 0

ADAMS                                 0

FORD                                  0

SMITH                                 0

BLAKE                                 0

ALLEN                                 0

WARD                                  0

MARTIN                                1

TURNER                                0

JAMES                                 0

CLARK                                 0

MILLER                                0</pre></td></tr></tbody></table>
<p>识别叶节点，CONNECT_BY_ISLEAF，返回值为1则为叶节点。</p>
<table cellspacing="0" cellpadding="0" width="100%" border="0" unselectable="on">
<tbody>
<tr>
<td valign="top"><pre><b>SELECT lname, CONNECT_BY_ISLEAF</b>

<b>FROM employee</b>

<b>START WITH manager_emp_id IS NULL</b>

<b>CONNECT BY PRIOR emp_id = manager_emp_id;</b>



LNAME           CONNECT_BY_ISLEAF

--------------- -----------------

KING                            0

JONES                           0

SCOTT                           0

ADAMS                           1

FORD                            0

SMITH                           1

BLAKE                           0

ALLEN                           1

WARD                            1

MARTIN                          1

TURNER                          1

JAMES                           1

CLARK                           0

MILLER                          1</pre></td></tr></tbody></table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font face="Courier New"></font></p><img src ="http://www.cnitblog.com/feiyang0721/aggbug/34750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-10-12 10:44 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分等级查询（3）</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34746.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Fri, 12 Oct 2007 01:49:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34746.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/34746.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/34746.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/34746.html</trackback:ping><description><![CDATA[<p>level伪列--返回每行属于哪一层。例如：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT level, lname, emp_id, manager_emp_id</strong>
            <strong>FROM employee</strong>
            <strong>START WITH manager_emp_id IS NULL</strong>
            <strong>CONNECT BY manager_emp_id = PRIOR emp_id;</strong>
            LEVEL LNAME                    EMP_ID MANAGER_EMP_ID
            ---------- -------------------- ---------- --------------
            1 KING                       7839
            2 JONES                      7566           7839
            3 SCOTT                      7788           7566
            4 ADAMS                      7876           7788
            3 FORD                       7902           7566
            4 SMITH                      7369           7902
            2 BLAKE                      7698           7839
            3 ALLEN                      7499           7698
            3 WARD                       7521           7698
            3 MARTIN                     7654           7698
            3 TURNER                     7844           7698
            3 JAMES                      7900           7698
            2 CLARK                      7782           7839
            3 MILLER                     7934           7782
            14 rows selected.</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>下面来看一些复杂的分等级查询操作。</p>
<p>返回层数：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT MAX(LEVEL) </strong>
            <strong>FROM employee</strong>
            <strong>START WITH manager_emp_id IS NULL</strong>
            <strong>CONNECT BY PRIOR emp_id = manager_emp_id;</strong>
            MAX(LEVEL)
            ----------
            4</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>如何检查员工a是否可以管理员工b，由于a可能不是b的主管经理，所以我们不能直接通过manager_emp_id来判断，可以使用如下语句：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT emp_id, lname, dept_id, manager_emp_id, salary, hire_date </strong>
            <strong>FROM employee</strong>
            <strong>WHERE lname = 'SMITH'</strong>
            <strong>START WITH lname = 'JONES'</strong>
            <strong>CONNECT BY manager_emp_id = PRIOR emp_id;</strong>
            EMP_ID LNAME         DEPT_ID MANAGER_EMP_ID     SALARY HIRE_DATE
            ---------- ---------- ---------- -------------- ---------- ---------
            7369 SMITH              20           7902        800 17-DEC-80</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>列出员工及他管理的员工的工资总数：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT t2.lname, t2.salary,</strong>
            <strong>(SELECT SUM(t1.salary) FROM employee t1</strong>
            <strong>START WITH t1.lname = t2.lname</strong>
            <strong>CONNECT BY t1.manager_emp_id = PRIOR t1.emp_id) sum_salary</strong>
            <strong>FROM employee t2;</strong>
            LNAME                    SALARY SUM_SALARY
            -------------------- ---------- ----------
            SMITH                       800        800
            ALLEN                      1600       1600
            WARD                       1250       1250
            JONES                      2000       9900
            MARTIN                     1250       1250
            BLAKE                      2850       9400
            CLARK                      2450       3750
            SCOTT                      3000       4100
            KING                       5000      28050
            TURNER                     1500       1500
            ADAMS                      1100       1100
            JAMES                       950        950
            FORD                       3000       3800
            MILLER                     1300       1300
            14 rows selected.</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>分等级查询里的排序：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT LEVEL, LPAD('  ',2*(LEVEL - 1)) || lname "EMPLOYEE", </strong>
            <strong>       emp_id, manager_emp_id</strong>
            <strong>FROM employee</strong>
            <strong>START WITH manager_emp_id IS NULL</strong>
            <strong>CONNECT BY PRIOR emp_id = manager_emp_id</strong>
            <strong>ORDER SIBLINGS BY lname;</strong>
            LEVEL EMPLOYEE                 EMP_ID MANAGER_EMP_ID
            ---------- -------------------- ---------- --------------
            1 KING                       7839
            2   BLAKE                    7698           7839
            3     ALLEN                  7499           7698
            3     JAMES                  7900           7698
            3     MARTIN                 7654           7698
            3     TURNER                 7844           7698
            3     WARD                   7521           7698
            2   CLARK                    7782           7839
            3     MILLER                 7934           7782
            2   JONES                    7566           7839
            3     FORD                   7902           7566
            4       SMITH                7369           7902
            3     SCOTT                  7788           7566
            4       ADAMS                7876           7788</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>到某节点的路径：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT SYS_CONNECT_BY_PATH(lname, '#')</strong>
            <strong>FROM employee</strong>
            <strong>START WITH manager_emp_id IS NULL</strong>
            <strong>CONNECT BY PRIOR emp_id = manager_emp_id;</strong>
            SYS_CONNECT_BY_PATH(LNAME,'#')
            ---------------------------------
            #KING
            #KING#JONES
            #KING#JONES#SCOTT
            #KING#JONES#SCOTT#ADAMS
            #KING#JONES#FORD
            #KING#JONES#FORD#SMITH
            #KING#BLAKE
            #KING#BLAKE#ALLEN
            #KING#BLAKE#WARD
            #KING#BLAKE#MARTIN
            #KING#BLAKE#TURNER
            #KING#BLAKE#JAMES
            #KING#CLARK
            #KING#CLARK#MILLER</pre>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnitblog.com/feiyang0721/aggbug/34746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-10-12 09:49 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/10/12/34746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分等级查询（2）</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34717.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Thu, 11 Oct 2007 09:47:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34717.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/34717.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/34717.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/34717.html</trackback:ping><description><![CDATA[<p>如果打算列出所有的员工和他的经理。可以完成一个自外连接，如下：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT e_top.lname, e_2.lname, e_3.lname, e_4.lname </strong>
            <strong>FROM employee e_top LEFT OUTER JOIN employee e_2 </strong>
            <strong>                                    ON e_top.emp_id = e_2.manager_emp_id</strong>
            <strong>                    LEFT OUTER JOIN employee e_3 </strong>
            <strong>                                    ON e_2.emp_id = e_3.manager_emp_id</strong>
            <strong>                    LEFT OUTER JOIN employee e_4 </strong>
            <strong>                                    ON e_3.emp_id = e_4.manager_emp_id</strong>
            <strong>WHERE e_top.manager_emp_id IS NULL;</strong>
            LNAME                LNAME                LNAME                LNAME
            -------------------- -------------------- -------------------- ------
            KING                 JONES                FORD                 SMITH
            KING                 JONES                SCOTT                ADAMS
            KING                 BLAKE                TURNER
            KING                 BLAKE                ALLEN
            KING                 BLAKE                WARD
            KING                 CLARK                MILLER
            KING                 BLAKE                MARTIN
            KING                 BLAKE                JAMES
            8 rows selected.</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>这种类型的查询有缺点。第一，需要知道组织结构有多少层，而且，对于一个有四层的employee表，你需要把四个表实例连接在一起，考虑一下如果表中有20层的情况。</p>
<p>为了解决这些问题，oracle提供了对于ANSI SQL的一些扩展。</p>
<p>START WITH ... CONNECT BY 子句</p>
<p>PRIOR操作符</p>
<p>LEVEL伪列</p>
<p>语法如下：</p>
<pre>[[START WITH <tt><em>condition1</em></tt>]  CONNECT BY <tt><em>condition2</em></tt>]</pre>
<pre>START WITH <tt><em>condition1</em></tt> 指定根元素。所有满足<tt><em>condition1</em></tt> 条件的行都被认作是根。</pre>
<pre><tt><em>condition1</em></tt> 可以包含子查询。</pre>
<pre>CONNECT BY <tt><em>condition2 </em>指定父行与子行的关系。<tt><em>condition2</em></tt>必须包含一个PRIOR</tt></pre>
<pre><tt>操作符，用来确定父行里的列，<tt><em>condition2</em></tt>不能包含子查询。</tt></pre>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT lname, emp_id, manager_emp_id</strong>
            <strong>FROM employee</strong>
            <strong>START WITH manager_emp_id IS NULL</strong>
            <strong>CONNECT BY PRIOR emp_id = manager_emp_id;</strong>
            LNAME                    EMP_ID MANAGER_EMP_ID
            -------------------- ---------- --------------
            KING                       7839
            JONES                      7566           7839
            SCOTT                      7788           7566
            ADAMS                      7876           7788
            FORD                       7902           7566
            SMITH                      7369           7902
            BLAKE                      7698           7839
            ALLEN                      7499           7698
            WARD                       7521           7698
            MARTIN                     7654           7698
            TURNER                     7844           7698
            JAMES                      7900           7698
            CLARK                      7782           7839
            MILLER                     7934           7782
            14 rows selected.</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>考虑如下查询，以一个工作时间最长的员工为根：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT lname, emp_id, manager_emp_id</strong>
            <strong>FROM employee</strong>
            <strong>START WITH hire_date = (SELECT MIN(hire_date) FROM employee)</strong>
            <strong>CONNECT BY manager_emp_id = PRIOR emp_id;</strong>
            LNAME                    EMP_ID MANAGER_EMP_ID
            -------------------- ---------- --------------
            BLAKE                      7698           7839
            ALLEN                      7499           7698
            WARD                       7521           7698
            MARTIN                     7654           7698
            TURNER                     7844           7698
            JAMES                      7900           7698
            6 rows selected.</pre>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnitblog.com/feiyang0721/aggbug/34717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-10-11 17:47 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分等级查询（1）</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34716.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Thu, 11 Oct 2007 09:15:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34716.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/34716.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34716.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/34716.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/34716.html</trackback:ping><description><![CDATA[<p>在一个关系数据库中，可以表现分等级的信息。例如一个显示一个大型机构的雇员信息的组织系统图。</p>
<p><a href="http://www.cnitblog.com/images/cnitblog_com/feiyang0721/WindowsLiveWriter/ca3f80f21097_EF0D/a_1.gif" atomicselection="true"><img height=99 alt=a src="http://www.cnitblog.com/images/cnitblog_com/feiyang0721/WindowsLiveWriter/ca3f80f21097_EF0D/a_thumb_1.gif" width=240></a> </p>
<p>建立的表结构如下：
<pre>CREATE TABLE employee (</pre>
<pre>emp_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER (4) CONSTRAINT emp_pk PRIMARY KEY,</pre>
<pre>fname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (15) NOT NULL, </pre>
<pre>lname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (15) NOT NULL, </pre>
<pre>dept_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER (2) NOT NULL,</pre>
<pre>manager_emp_id&nbsp; NUMBER (4) CONSTRAINT emp_fk<strong> REFERENCES employee(emp_id),</strong></pre>
<pre>salary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER (7,2) NOT NULL,</pre>
<pre>hire_date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE NOT NULL, </pre>
<pre>job_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER (3));</pre>
<p>表中的数据如下：
<pre><strong>SELECT emp_id, lname, dept_id, manager_emp_id, salary, hire_date</strong></pre>
<pre><strong>FROM employee;</strong></pre>
<pre>&nbsp;&nbsp; EMP_ID LNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEPT_ID MANAGER_EMP_ID&nbsp;&nbsp;&nbsp; SALARY HIRE_DATE </pre>
<pre>--------- ---------- --------- -------------- --------- --------- </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7369 SMITH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7902&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 800 17-DEC-80 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7499 ALLEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7698&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1600 20-FEB-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7521 WARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7698&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1250 22-FEB-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7566 JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7839&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2000 02-APR-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7654 MARTIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7698&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;1250 28-SEP-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7698 BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7839&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2850 01-MAY-80 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7782 CLARK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7839&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2450 09-JUN-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7788 SCOTT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7566&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3000 19-APR-87 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7839 KING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5000 17-NOV-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7844 TURNER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7698&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1500 08-SEP-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7876 ADAMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7788&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1100 23-MAY-87 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7900 JAMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7698&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 950 03-DEC-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7902 FORD&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7566&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3000 03-DEC-81 </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7934 MILLER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7782&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1300 23-JAN-82&nbsp;</pre>
<p>employee表中有两个重要的部分：列manager_emp_id和emp_fk约束
<p>先看几个简单的分等级查询：
<p>如果需要找出根节点，只需要执行以下语句：
<pre><strong>SELECT emp_id, lname, dept_id, manager_emp_id, salary, hire_date </strong></pre>
<pre><strong>FROM employee </strong></pre>
<pre><strong>WHERE manager_emp_id IS NULL;</strong></pre>
<pre>&nbsp;</pre>
<pre>&nbsp;&nbsp; EMP_ID LNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEPT_ID MANAGER_EMP_ID&nbsp;&nbsp;&nbsp; SALARY HIRE_DATE </pre>
<pre>--------- ---------- --------- -------------- --------- --------- </pre>
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7839 KING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5000 17-NOV-81</pre>
<p>如果想要找出节点的父节点，本例中就是显示每个雇员的经理姓名，执行如下语句：
<pre><strong>SELECT e.lname "Employee", m.lname "Manager" </strong></pre>
<pre><strong>FROM employee e, employee m </strong></pre>
<pre><strong>WHERE e.manager_emp_id = m.emp_id;</strong></pre>
<pre>Employee&nbsp;&nbsp; Manager</pre>
<pre>---------- ----------</pre>
<pre>SMITH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FORD</pre>
<pre>ALLEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE</pre>
<pre>WARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE</pre>
<pre>JONES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING</pre>
<pre>MARTIN&nbsp;&nbsp;&nbsp;&nbsp; BLAKE</pre>
<pre>BLAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING</pre>
<pre>CLARK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KING</pre>
<pre>SCOTT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES</pre>
<pre>TURNER&nbsp;&nbsp;&nbsp;&nbsp; BLAKE</pre>
<pre>ADAMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SCOTT</pre>
<pre>JAMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BLAKE</pre>
<pre>FORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JONES</pre>
<pre>MILLER&nbsp;&nbsp;&nbsp;&nbsp; CLARK</pre>
<p>如果想要找出所有的页节点，本例中就是找出所有的普通雇员，使用如下语句：
<pre><strong>SELECT emp_id, lname, dept_id, manager_emp_id, salary, hire_date </strong></pre>
<pre><strong>FROM employee e</strong></pre>
<pre><strong>WHERE emp_id NOT IN </strong></pre>
<pre><strong>(SELECT manager_emp_id FROM employee </strong></pre>
<pre><strong>WHERE manager_emp_id IS NOT NULL);</strong></pre>
<p>注意where子句中的条件。</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre>   EMP_ID LNAME        DEPT_ID MANAGER_EMP_ID    SALARY HIRE_DATE
            --------- ---------- --------- -------------- --------- ---------
            7369 SMITH             20           7902       800 17-DEC-80
            7499 ALLEN             30           7698      1600 20-FEB-81
            7521 WARD              30           7698      1250 22-FEB-81
            7654 MARTIN            30           7698      1250 28-SEP-81
            7844 TURNER            30           7698      1500 08-SEP-81
            7876 ADAMS             20           7788      1100 23-MAY-87
            7900 JAMES             30           7698       950 03-DEC-81
            7934 MILLER            10           7782      1300 23-JAN-82
            8 rows selected.</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>同样也可以使用如下的语句完成相同功能：</p>
<table cellSpacing=0 cellPadding=0 width="100%" border=0 unselectable="on">
    <tbody>
        <tr>
            <td vAlign=top>
            <pre><strong>SELECT emp_id, lname, dept_id, manager_emp_id, salary, hire_date </strong>
            <strong>FROM employee e</strong>
            <strong>WHERE NOT EXISTS </strong>
            <strong>(SELECT emp_id FROM employee e1 WHERE e.emp_id = e1.manager_emp_id);</strong>
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnitblog.com/feiyang0721/aggbug/34716.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-10-11 17:15 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/10/11/34716.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读书笔记：简单PL/SQL程序以及注意事项</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/10/09/34589.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Tue, 09 Oct 2007 08:07:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/10/09/34589.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/34589.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/10/09/34589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/34589.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/34589.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: PL/SQL  纯净度  Deterministic&nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/10/09/34589.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/34589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-10-09 16:07 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/10/09/34589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 日期时间数据类型</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/09/19/33765.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Wed, 19 Sep 2007 07:08:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/09/19/33765.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/33765.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/09/19/33765.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/33765.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/33765.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: DATE TIMESTAMP INTERVAL &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/09/19/33765.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/33765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-09-19 15:08 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/09/19/33765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle索引--基于函数的索引</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33575.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Mon, 17 Sep 2007 09:17:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33575.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/33575.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/33575.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/33575.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 基于函数的索引&nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33575.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/33575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-09-17 17:17 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何分析表 使用基于成本的优化器</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33573.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Mon, 17 Sep 2007 08:55:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33573.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/33573.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/33573.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/33573.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用基于成本的优化器<br>&nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33573.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/33573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-09-17 16:55 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/09/17/33573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读书笔记：分组操作</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31554.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Thu, 09 Aug 2007 09:53:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31554.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/31554.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31554.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/31554.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/31554.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31554.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/31554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-08-09 17:53 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对join视图使用DML语句</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31551.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Thu, 09 Aug 2007 08:18:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31551.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/31551.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/31551.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/31551.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31551.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/31551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-08-09 16:18 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/08/09/31551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读书笔记：where子句使用</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/08/02/31132.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Thu, 02 Aug 2007 03:45:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/08/02/31132.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/31132.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/08/02/31132.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/31132.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/31132.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/08/02/31132.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/31132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-08-02 11:45 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/08/02/31132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORA-01843: 无效的月份</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/08/01/31090.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Wed, 01 Aug 2007 06:47:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/08/01/31090.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/31090.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/08/01/31090.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/31090.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/31090.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ORA-01843&nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/08/01/31090.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/31090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-08-01 14:47 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/08/01/31090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MERGE语法</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/07/31/30961.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Tue, 31 Jul 2007 02:08:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/07/31/30961.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/30961.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/07/31/30961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/30961.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/30961.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/07/31/30961.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/30961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-07-31 10:08 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/07/31/30961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE执行计划的一些基本概念</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/07/24/30505.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Tue, 24 Jul 2007 06:50:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/07/24/30505.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/30505.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/07/24/30505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/30505.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/30505.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/07/24/30505.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/30505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-07-24 14:50 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/07/24/30505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于insert</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30450.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Mon, 23 Jul 2007 02:38:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30450.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/30450.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/30450.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/30450.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30450.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/30450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-07-23 10:38 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TRUNC()函数用法</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30448.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Mon, 23 Jul 2007 02:10:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30448.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/30448.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/30448.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/30448.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30448.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/30448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-07-23 10:10 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/07/23/30448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL 通配符（转）</title><link>http://www.cnitblog.com/feiyang0721/archive/2007/07/17/30048.html</link><dc:creator>tianjuchuan</dc:creator><author>tianjuchuan</author><pubDate>Tue, 17 Jul 2007 09:05:00 GMT</pubDate><guid>http://www.cnitblog.com/feiyang0721/archive/2007/07/17/30048.html</guid><wfw:comment>http://www.cnitblog.com/feiyang0721/comments/30048.html</wfw:comment><comments>http://www.cnitblog.com/feiyang0721/archive/2007/07/17/30048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/feiyang0721/comments/commentRss/30048.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/feiyang0721/services/trackbacks/30048.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cnitblog.com/feiyang0721/archive/2007/07/17/30048.html'>阅读全文</a><img src ="http://www.cnitblog.com/feiyang0721/aggbug/30048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/feiyang0721/" target="_blank">tianjuchuan</a> 2007-07-17 17:05 <a href="http://www.cnitblog.com/feiyang0721/archive/2007/07/17/30048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>