A表
ID NUM CONVERT
1 80 1.1
2 78 2.1
3 29 3.1想要的结果是NUM字段乘以CONVERT字段,得到的返回结果(80*1.1)+(78*2.1)+(29*3.1)请高手教我一下怎么样在函数中得到CONVERT字段的内部,谢谢!
ID NUM CONVERT
1 80 1.1
2 78 2.1
3 29 3.1想要的结果是NUM字段乘以CONVERT字段,得到的返回结果(80*1.1)+(78*2.1)+(29*3.1)请高手教我一下怎么样在函数中得到CONVERT字段的内部,谢谢!
解决方案 »
- 请问大家谁有oralce9.2.0.4阿
- Oracle的sql语句
- SQL优化问题
- ORACLE 9I安装问题,有人能解决吗?在线等待……
- oracel 10g express 怎样链接Sql server
- oracle 17027错误,流已被关闭,这是怎么回事?
- 请问哪位前辈知道一些免费的oracle9irac的电子资料,请你指点!!!
- 请问:在一个触发器中有没有可能调用一个外部程序?
- 在linux8上安装oracle9.2.0.1.0最後创建数据库向导时一闪退出了,该怎么自己创建数据库啊?
- 我要是将表的所有字段都建成索引,会有什么样的后果?
- Oracle初学者--这些奇怪的表哪里来的???
- 再根据我的需求问一下主键的建立问题
for rec in (select * from A)
loop
result := to_number(rec.num)*to_number(rec.convert)
end loop;
大概意思就是這樣~
create or replace function aaa() return number
is
total number;
begin
select sum(num*convert) into total from a;
return total;
end;
没测试过,你试下看行不行
from (select (NUM * CONVERT) as plus from A表 )AA
给你个代码学习:
DROP TABLE b;
CREATE TABLE b (ID int,num NUMBER,CONVERT NUMBER);
INSERT INTO b VALUES(1,80,1.1);
INSERT INTO b VALUES(2,78,2.1);
INSERT INTO b VALUES(3,29,3.1);
COMMIT;
SELECT * FROM b;CREATE OR REPLACE FUNCTION G(vID NUMBER) RETURN VARCHAR2 AS
R_STR VARCHAR2(20);
BEGIN
SELECT '(' || NUM || '*' || CONVERT || ')'
INTO R_STR
FROM B
WHERE ID = vID
AND ROWNUM = 1;
RETURN R_STR;
END;
SELECT g(1)||'+'||g(2)||'+'||g(3) FROM dual;
CREATE TABLE b (ID int,num NUMBER,CONVERT NUMBER);
INSERT INTO b VALUES(1,80,1.1);
INSERT INTO b VALUES(2,78,2.1);
INSERT INTO b VALUES(3,29,3.1);
COMMIT;
SELECT * FROM b;CREATE OR REPLACE FUNCTION G(vID NUMBER) RETURN VARCHAR2 AS
R_STR VARCHAR2(20);
BEGIN
SELECT '(' || NUM || '*' || CONVERT || ')'
INTO R_STR
FROM B
WHERE ID = vID
AND ROWNUM = 1;
RETURN R_STR;
END;
/SELECT g(1)||'+'||g(2)||'+'||g(3) FROM dual;