我的两个PL / SQL select语句的结果是整数27& 50,我希望他们的分区(27/50)0.54输出......怎么做?
我试过了 选择*来自 ((选择....)/(选择......)) 但它不起作用!!
答案 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之间提供连接条件。