划分两个PL / SQL select语句的结果

时间:2009-06-08 01:10:41

标签: plsql division

我的两个PL / SQL select语句的结果是整数27& 50,我希望他们的分区(27/50)0.54输出......怎么做?

我试过了 选择*来自 ((选择....)/(选择......)) 但它不起作用!!

2 个答案:

答案 0 :(得分:15)

SELECT 
  (SELECT thefirst FROM singlerowtable) / 
  (SELECT theother FROM othersinglerow) AS result

如果您想确保CAST(thefirst AS FLOAT)分区,还可以使用FLOAT,& c。

答案 1 :(得分:4)

在FROM子句中,您只能将结果集连接在一起,不能使用其他类似的运算符。

但是,您可以在SELECT子句中使用算术运算符,例如: (正如亚历克斯已经说过的那样):

SELECT (SELECT thefirst ...)
       /
       (SELECT thesecond ...) AS result
FROM DUAL;

或者,或者:

SELECT A.thefirst / B.thesecond AS result
FROM   (SELECT thefirst ...) A
      ,(SELECT thesecond ...) B;

如果结果集中没有一行,则第一种方法将失败。

即使结果集有多行,第二种方法仍然有效 - 如果您不希望在两个结果集之间进行笛卡尔连接,则可能必须在A和B之间提供连接条件。