一个SQL语句的书写

[复制链接]
查看11 | 回复5 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
有表table_1,table_2,table_3
table1_1:
nodata
2 200
3 300
table_2:
nodata
2 300
5 500
我想把table_1,table_2整理到table_3,如下:
table_3:
nodata1 data2
2
200 300
3
300
5
500
请问该如何实现,即把no相同的写在一起,不相同的分别列出来
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
table_3:
no --data1 --data2
2 --200 --300
3 --300--------
5 -----------500
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
建议是不是做个过程或者用游标处理?
觉得因为相同no的最大个数不固定比较大的话
写在一句sql中难度大,效率可能太低
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
可惜我找不到oracle中的完全外连接的用法,谁能告诉我
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 shipatrioc 发布
[B]table_3:
no --data1 --data2
2 --200 --300
3 --300--------
5 -----------500 [/B]

DROP TABLE T_A
Table dropped
DROP TABLE T_B
Table dropped
DROP TABLE T_C
Table dropped
CREATE TABLE T_A AS
SELECT ROWNUM NO, ROWNUM DATA FROM DUAL
Table created
CREATE TABLE T_B AS
SELECT * FROM T_A
Table created
CREATE TABLE T_C AS
SELECT ROWNUM NO, ROWNUM DATA_1, ROWNUM DATA_2 FROM DUAL
Table created
BEGIN
FOR X IN 1..10
LOOP

INSERT INTO T_A

VALUES(X,X);
END LOOP;
COMMIT;
END;
PL/SQL procedure successfully completed

BEGIN
FOR X IN 5..15
LOOP

INSERT INTO T_B

VALUES(X,X);
END LOOP;
COMMIT;
END;
PL/SQL procedure successfully completed
SELECT * FROM T_A
NO DATA
---------- ----------
1
1
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10 10
11 rows selected
SELECT * FROM T_B
NO DATA
---------- ----------
1
1
5
5
6
6
7
7
8
8
9
9
10 10
11 11
12 12
13 13
14 14
15 15
12 rows selected
TRUNCATE TABLET_C
Table truncated
[B]
INSERT INTO T_C
SELECT A.NO,(SELECT SUM(DATA) FROM T_A WHERE NO= A.NO),(SELECT SUM(DATA) FROM T_B WHERE NO= A.NO)
FROM (SELECT NO FROM T_A UNION SELECT NO FROM T_B) A
[/B]
15 rows inserted
SELECT * FROM T_C
NO DATA_1 DATA_2
---------- ---------- ----------
1
2
1
2
2
3
3
4
4
5
5
5
6
6
6
7
7
7
8
8
8
9
9
9
10 10 10
11
11
12
12
13
13
14
14
15
15
15 rows selected
[RED]A[/RED]

回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
罪惡的縮進
到50篇了,斑竹拿FTP來,謝謝
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行