ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 有時候ROWNUM也可以作為兩個表的連接字段

有時候ROWNUM也可以作為兩個表的連接字段

原创 Linux操作系统 作者:jack198409 时间:2007-11-12 00:00:00 0 删除 编辑

我的要求是这样的 t1的id1和id2和 t2的id关联

表一 t1

id1 id2
001 002
003 004

表二 t2

id 厂站名
001 一厂
002 二厂
003 三厂
004 四厂


最后得到的结果是
id1 id2
一厂 二厂
三厂 四厂

SQL> select * from X;

ID1 ID2
--- ---
001 002
003 004

SQL>
SQL> WITH A AS (SELECT '001' ID ,'一廠' NAME FROM DUAL
2 UNION
3 SELECT '002' ID ,'二廠' NAME FROM DUAL
4 UNION
5 SELECT '003' ID ,'三廠' NAME FROM DUAL
6 UNION
7 SELECT '004' ID ,'四廠' NAME FROM DUAL
8 )
9
9 SELECT B.ID1,C.ID2 FROM (SELECT ROWNUM RN,A.NAME ID1,X.ID1 ID3 FROM X,A WHERE A.ID=X.ID1) B
10 ,(SELECT ROWNUM RN,A.NAME ID2,X.ID2 ID4 FROM X,A WHERE A.ID=X.ID2) C
11 WHERE B.RN=C.RN
12 ;

ID1 ID2
---- ----
一廠 二廠
三廠 四廠

方法二

--一個表的一個字段有時候可以跟另一個表里的兩個字段對應
SELECT C.NAME NAME1,B.NAME NAME2 FROM X,A C,A B WHERE X.ID1=B.ID AND X.ID2=C.ID;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10768286/viewspace-83470/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-13

  • 博文量
    135
  • 访问量
    284921