0

where句の後、またはtable_nameに言及した後のどこでも集計関数を使用することについて完全に混乱しています

http://viditkothari.co.in/post/27045365558/sql-commands-1に投稿された EMP テーブル

クエリ情報:
部門番号 30 のいずれかの従業員と等しいサルを持つすべての従業員を表示します。

推奨クエリ:

select * 
  from employee_4521 
 where sal having (select sal 
                     from employee_4521 
                    where deptno = 30);

次のエラーを返します。

1 行目のエラー:
ORA-00920: 関係演算子が無効です

having 句の「h」の下にアスタリスクが付いている

4

1 に答える 1

2

ここで集計関数を使用する理由はないようです。INまたはを使用するだけですEXISTS

select * 
  from employee_4521 
 where sal in (select sal 
                 from employee_4521 
                where deptno=30);

また

select * 
  from employee_4521 a
 where exists( select 1
                 from employee_4521 b
                 where b.deptno = 30
                   and a.sal = b.sal );
于 2012-08-10T02:57:01.503 に答える