0
SELECT name from SUPPLIER
WHERE code =
(SELECT code FROM STOCK GROUP BY code HAVING COUNT(DISTINCT code)>=3);

私はSQLPLUSを使用しています。クエリが単一の結果を返すと、探している答えが得られます。ただし、複数の行が返されると、次のエラー メッセージが表示されます。

ORA-01427: 単一行の副問合せが複数の行を返します

4

2 に答える 2

0

単一行操作のサブクエリでは、返されませんtrue(つまり=、1つの値しか比較できない)複数の行が返されます。

キーワードを使用するgroup byと、複数の行が返されるため、エラーが発生します。

解決策はを使用することINです。

于 2013-03-03T17:54:12.040 に答える
0

2 つの可能性があります。1 つはサブクエリを修復して常に 1 行のみを返すようにすること、もう 1 つはINorを使用することANYです。

SELECT name from SUPPLIER
WHERE code in (SELECT code FROM STOCK GROUP BY code HAVING COUNT(DISTINCT code)>=3);
于 2012-11-24T19:49:27.100 に答える