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

2 plsql division

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

我试过select*from((select ....)/(select ...))但它不起作用!!

Ale*_*lli 16

SELECT 
  (SELECT thefirst FROM singlerowtable) / 
  (SELECT theother FROM othersinglerow) AS result
Run Code Online (Sandbox Code Playgroud)

CAST(thefirst AS FLOAT)如果你想确保FLOAT分工,你也可以使用,&c.


Jef*_*emp 5

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

但是,您可以在 SELECT 子句中使用算术运算符,例如(正如 Alex 所说):

SELECT (SELECT thefirst ...)
       /
       (SELECT thesecond ...) AS result
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

或者,或者:

SELECT A.thefirst / B.thesecond AS result
FROM   (SELECT thefirst ...) A
      ,(SELECT thesecond ...) B;
Run Code Online (Sandbox Code Playgroud)

如果结果集每个都没有恰好一行,则第一种方法将失败。

即使结果集有多于一行,第二种方法也能工作 - 如果您不想在两个结果集之间进行笛卡尔连接,您可能必须在 A 和 B 之间提供连接条件。