2009-06-08 10 views
1

私の2つのPL/SQL select文の結果は整数27 & 50です。私はその分割(27/50)0.54を出力したいと思います...どうすればいいですか?私は を試してみました2つのPL/SQL select文の結果を分割する

は (()....を選択/(選択...)) SELECT * FROMが、それは動作しません!

+0

PL/SQLは分かりませんが、除算を実行する前に両方のオペランドを浮動小数点にキャストしてみてください。整数除算を行っている可能性があります。結果として0が返されます(これはあなたが見ているものですか?) –

答えて

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

あなたがFLOAT部門、& Cを確保したい場合は、CAST(thefirst AS FLOAT)を使用することができます。

3

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; 

第1のアプローチは失敗します。

結果セットに複数の行が含まれていても、2つ目の方法は機能します.2つの結果セットの間にデカルト結合を必要としない場合は、AとBの間に結合基準を指定する必要があります。

+1

また、ゼロ除算のエラーに注意してください! –

関連する問題