我的两个 PL/SQL 选择语句的结果是整数 27 和 50,我希望它们的除法 (27/50) 输出时为 0.54...怎么做?
我试过 select * from ((select....)/(select ...)) 但它不起作用!!
SELECT
(SELECT thefirst FROM singlerowtable) /
(SELECT theother FROM othersinglerow) AS result
CAST(thefirst AS FLOAT)
如果要确保除法,也可以使用FLOAT
&c。
在您的 FROM 子句中,您只能将结果集连接在一起,不能使用其他类似的运算符。
但是,您可以在 SELECT 子句中使用算术运算符,例如(正如 Alex 已经说过的):
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 之间的连接标准。