1、在oracle 9i中,怎么在执行完插入语句后获得插入记录的自动增长的id??????
2、表A: name num
0001 100
0002 100
0003 100
0004 100
表B: id name
1 0001,0003
2 0001
3 0001,0002,0003,.....
如何把表B的name按‘,’解析出来,取他们对应的num,然后再计算他们的和。
望各位高手帮忙了!!!!!!!!!!急急急!!!!!!!!!!!!!
2、表A: name num
0001 100
0002 100
0003 100
0004 100
表B: id name
1 0001,0003
2 0001
3 0001,0002,0003,.....
如何把表B的name按‘,’解析出来,取他们对应的num,然后再计算他们的和。
望各位高手帮忙了!!!!!!!!!!急急急!!!!!!!!!!!!!
解决方案 »
- 先装了oracle11g,再装10g,都是client,但是同样的tnsnames.ora,为啥10g的不能连?
- Oracle 10g安装过后怎样调整内存分配大小
- 一个Oracle查询问题!
- toad 如何 插入新列
- 高分找高手帮我改造一下oracle存储过程
- 关于oracle 数据管理数据迁移
- 数据导入,出现ORACLE 的 922 错误,请帮忙解答,谢谢大家
- 求一条sql查询语句,查询结果是母-->子-->子子...链的形式!
- 下面这段SQL语句在oracle中PL/SQL怎么写,急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 急,急,急,谢了!QQ:89448918 [email protected]
- 查询优化问题
- 【数据库设计】-文章内容-不同的用户角色在前台查看的内容是不同的-【设计思路】-分不同的角色保存不同的内容-能行吗?
---------- ----------
0001 100
0002 100
0003 100
0004 100SQL> select * from b; ID NAME
--------------------------------------- ----------------------------------------
1 0001,0003
2 0001
3 0001,0002,0003SQL>
SQL> select t.id, sum(A.num) num
2 from A,
3 (select id,
4 substr(',' || name || ',',
5 instr(',' || name || ',', ',', 1, rn) + 1,
6 instr(',' || name || ',', ',', 1, rn + 1) -
7 instr(',' || name || ',', ',', 1, rn) - 1) as name
8 from B,
9 (select rownum rn
10 from all_objects
11 where rownum <=
12 (select max(length(name) - length(replace(name, ',')) + 1)
13 from B))) t
14 where A.name = t.name
15 and t.name is not null
16 group by t.id
17 / ID NUM
--------------------------------------- ----------
1 200
2 100
3 300SQL>
2.
CREATE TABLE a(NAME VARCHAR2(20),num INT);
CREATE TABLE b(ID INT,NAME VARCHAR2(400));
INSERT INTO A VALUES ('0001', 100);
INSERT INTO A VALUES ('0002', 100);
INSERT INTO A VALUES ('0003', 100);
INSERT INTO A VALUES ('0004', 100);
INSERT INTO B VALUES (1, '0001,0003');
INSERT INTO B VALUES (2, '0001');
INSERT INTO B VALUES (3, '0001,0002,0003,0004');
COMMIT;
SELECT ID, SUM(A.NUM) SUM_NUM
FROM (SELECT ID,
SUBSTR(',' || NAME || ',',
INSTR(',' || NAME || ',', ',', 1, XX.RN) + 1,
INSTR(',' || NAME || ',', ',', 1, XX.RN + 1) -
INSTR(',' || NAME || ',', ',', 1, XX.RN) - 1) NAME
FROM B,
(SELECT ROWNUM RN
FROM ALL_OBJECTS
WHERE ROWNUM <=
(SELECT MAX(LENGTH(NAME) - LENGTH(REPLACE(NAME, ',')) + 1)
FROM B)) XX
WHERE INSTR(',' || NAME, ',', 1, XX.RN) > 0) B,
A
WHERE A.NAME = B.NAME
GROUP BY ID;输出:
ID SUM_NUM
1 200
2 100
3 400