給与が500を超える、またはポジションがMANAGERであると同時に、大文字のJでイニシャルを満たす従業員を照会します。
select * from EMP where (sal>500 or job='MANAGER') and ename like 'J%';
部門番号を昇順で並べ替え、従業員の給与を降順で並べ替えます
select * from EMP order by deptno, sal desc;
年俸を使用して降順で並べ替える
select ename, sal*12+ifnull(comm,0) as '年薪' from EMP order by 年薪 desc;
最高賃金の従業員の名前と役職を表示する
select ename, job from EMP where sal = (select max(sal) from EMP);
平均給与より高い給与の従業員に関する情報を表示する
select ename, sal from EMP where sal>(select avg(sal) from EMP);
各部門の平均給与と最大給与を表示する
select deptno, format(avg(sal), 2) , max(sal) from EMP group by deptno;
部門番号と2000年未満の平均給与を表示する
select deptno, avg(sal) as avg_sal from EMP group by deptno having avg_sal<2000;
各ポジションの総従業員数、平均給与を表示します
select job,count(*), format(avg(sal),2) from EMP group by job;
SMITHの同じ部門の従業員を表示する
select * from EMP WHERE deptno = (select deptno from EMP where ename='smith');
キーワードで;部門10と同じ仕事をしているが、自分の10を含まない従業員の名前、役職、給与、部門番号を照会する
select ename,job,sal,empno from emp where job in (select distinct job from emp where deptno=10) and deptno<>10;
allキーワード;部門30の全従業員よりも給与が高い従業員の名前、給与、部門番号を表示します
select ename, sal, deptno from EMP where sal > all(select sal from EMP where deptno=30);
任意のキーワード;部門30のどの従業員よりも給与が高い従業員の名前、給与、部門番号を表示します
select ename, sal, deptno from EMP where sal > any(select sal from EMP where deptno=30);
SMITH自身を除く、SMITHと同じ部門および役職のすべての従業員について問い合わせる
select ename from EMP where (deptno, job)=(select deptno, job from EMP where ename='SMITH') and ename <> 'SMITH';
給与が2500を超えるか、位置がMANAGERである人を見つけます
(ユニオン:この演算子は、2つの結果セットのユニオンを取得するために使用されます。この演算子を使用すると、結果セット内の重複行は自動的に削除されますが、ユニオンを使用してもすべては削除されません。重複する行は削除されます。)
select ename, sal, job from EMP where sal>2500 union
select ename, sal, job from EMP where job='MANAGER';--去掉了重复记录