2017-05-18 10 views
0

私はCOALESCE機能を使用してORA-01427とpick up first non-null valueを回避します。OracleDB:COALESCEとORA-01427:単一行サブクエリが複数の行を返します

COALESCE((
     SELECT c.SCounts 
     FROM counts c 
     WHERE c.ID = 10000 
     ), 0) 

このコードにコメントすると、すべてうまく動作します。

+2

このテーブルの主キー(または一意のキー)は何ですか?私はcounts.id列がユニークではないと賭けている、そこにあなたの問題があります。また、このコードはどこで使用されていますか?私はそれが外側のクエリの選択リストにあると仮定していますか? (つまり、 'select coalesce((あなたのクエリ)、0)、<他の列> ...)' – Boneist

+0

ありがとう、私はすでに問題を発見しました。 '合体((my_subselect)、0)' subselectは1つ以上の値を返します –

+0

これは1つの行に対して1つの値を返しますが、WHEREなしでテーブルから選択すると多くの行が得られます。とにかく、本当の問題だったら、私の答えを受け入れてください。 – Galcoholic

答えて

1

私は上記のCOALESCEを仮定は、このようなSELECT何かに埋め込まれている:これがtrueの場合

SELECT 
COALESCE((
     SELECT c.SCounts 
     FROM counts c 
     WHERE c.ID = 10000 
     ), 0) 
FROM counts 

、問題は、この選択は、テーブル数と同じ数の行をしている返すことである可能性があります。

関連する問題