2 つの 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
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;
結果セットにそれぞれ正確に 1 つの行がない場合、最初のアプローチは失敗します。
2 番目の方法は、結果セットに複数の行がある場合でも機能します。2 つの結果セット間でデカルト結合を行いたくない場合は、A と B の間に結合基準を指定する必要がある場合があります。