我的两个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.
在您的 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 之间提供连接条件。