0
次の問合せに問題があり、わたしが間違っている箇所を見つけられません。ORA-01427 TWO CASES [Oracle DB]を使用して「1行の副問合せで複数の行が戻されます」
SELECT * FROM TBLCUSTCHANNELACCT b WHERE
(CASE WHEN NVL('0001, 0015', '-1') = '-1' THEN NVL('0001, 0015', '-1')
ELSE b.productid END
IN
CASE WHEN NVL('0001, 0015', '-1') = '-1' THEN NVL('0001, 0015', '-1')
ELSE
(SELECT a.product_id FROM tblcfgproductdetail a WHERE a.productcode IN ('0001', '0015'))
END);
ありがとうございました。
あなたはクエリの結果を返すことができる 'case'を持っています。そのクエリは複数のレコードを返すので、 'case'はそれを扱うことができません。なぜ 'NVL( '0001、0015'、 '-1')'?テスト専用ですか? – Aleksej
@Aleksej本当にありがとうございます。回避策はありますか?「a.productcode IN( '0001')」のような値を1つだけ入力すると、正常に動作します。 –
サンプルデータと希望の結果を投稿してください。これはあなたのニーズを理解するのに役立ちます。 – Aleksej