4

2 つの PL/SQL 選択ステートメントの結果は整数 27 & 50 です。出力で除算 (27/50) 0.54 が必要です...どうすればよいですか?

select * from ((select....)/(select ...)) を試してみましたが、うまくいきません!!

4

2 に答える 2

21
SELECT 
  (SELECT thefirst FROM singlerowtable) / 
  (SELECT theother FROM othersinglerow) AS result

分割CAST(thefirst AS FLOAT)を確実にしたい場合にも使用できます。FLOAT

于 2009-06-08T01:14:40.683 に答える
5

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 の間に結合基準を指定する必要がある場合があります。

于 2009-06-08T01:27:07.040 に答える