例 A1: EMPLOYEE 表の列および行をすべて選択します。
SELECT * FROM EMPLOYEE
例 A2: EMP_ACT 表および EMPLOYEE 表を結合し、 EMP_ACT 表からすべての列を選択して、 EMPLOYEE 表の従業員の姓 (LASTNAME) を結果の各行に追加します。
SELECT EMP_ACT.*, LASTNAME FROM EMP_ACT, EMPLOYEE WHERE EMP_ACT.EMPNO = EMPLOYEE.EMPNO
例 A3: EMPLOYEE 表と DEPARTMENT 表を結合し、 1930 年よりも前に生まれた (BIRTHDATE) 従業員すべての従業員番号 (EMPNO)、 従業員の姓 (LASTNAME)、部門番号 (EMPLOYEE 表の WORKDEPT と DEPARTMENT 表の DEPTNO)、 および部門名 (DEPTNAME) を選択します。
SELECT EMPNO, LASTNAME, WORKDEPT, DEPTNAME FROM EMPLOYEE, DEPARTMENT WHERE WORKDEPT = DEPTNO AND YEAR(BIRTHDATE) < 1930
例 A4: EMPLOYEE 表の中で同じジョブ・コードをもつ行のグループごとに、 ジョブ (JOB) と給与 (SALARY) の最低額と最高額を選択します。 ただし、グループの中でも、複数の行が含まれ、 給与の最高額が 27000 以上のグループについてのみ選択を行います。
SELECT JOB, MIN(SALARY), MAX(SALARY) FROM EMPLOYEE GROUP BY JOB HAVING COUNT(*) > 1 AND MAX(SALARY) >= 27000
例 A5: EMP_ACT 表の中から、 部門 (WORKDEPT) 'E11' の従業員 (EMPNO) についてのすべての行を選択します。 (従業員部門番号は、EMPLOYEE 表に示されています。)
SELECT * FROM EMP_ACT WHERE EMPNO IN (SELECT EMPNO FROM EMPLOYEE WHERE WORKDEPT = 'E11')
例 A6: EMPLOYEE 表から、給与の最高額が従業員全体の平均給与に満たないすべての部門について、 部門番号 (WORKDEPT) と部門別給与 (SALARY) の最高額を選択します。
SELECT WORKDEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY WORKDEPT HAVING MAX(SALARY) < (SELECT AVG(SALARY) FROM EMPLOYEE)
この例では、HAVING 文節の副照会は 1 度だけ実行されることになります。
例 A7: EMPLOYEE 表を使用して、 部門別給与の最高額が他のすべての部門の平均給与より少ない部門の部門番号 (WORKDEPT) と その部門別給与 (SALARY) の最高額を選択します。
SELECT WORKDEPT, MAX(SALARY) FROM EMPLOYEE EMP_COR GROUP BY WORKDEPT HAVING MAX(SALARY) < (SELECT AVG(SALARY) FROM EMPLOYEE WHERE NOT WORKDEPT = EMP_COR.WORKDEPT)
例 A6 とは反対に、HAVING 文節の副照会は、 各グループごとに実行する必要があります。
例 A8: セールス担当員の従業員番号と給与、およびその部門の給与平均額と人数とを調べます。
この照会では、まずネストされた表式 (DINFO) を作成して、AVGSALARY 列と EMPCOUNT 列、 また WHERE 文節で使用される DEPTNO 列を入手する必要があります。
SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY, DINFO.AVGSALARY, DINFO.EMPCOUNT FROM EMPLOYEE THIS_EMP, (SELECT OTHERS.WORKDEPT AS DEPTNO, AVG(OTHERS.SALARY) AS AVGSALARY, COUNT(*) AS EMPCOUNT FROM EMPLOYEE OTHERS GROUP BY OTHERS.WORKDEPT ) AS DINFO WHERE THIS_EMP.JOB = 'SALESREP' AND THIS_EMP.WORKDEPT = DINFO.DEPTNO
このような場合には、ネストした表式を使用することによって、 DINFO 視点を正規の視点として作成することによりオーバーヘッドを軽減することができます。 ステートメントの準備中に、視点のカタログにはアクセスされません。 これは、照会の残りの部分の文脈により、 視点によって考慮する必要があるのはセールス担当の部門の行だけだからです。
例 A9: 5 つの従業員のランダム・グループについて平均的な教育レベルと給与を表示します。
この照会では、各従業員のランダム値を GROUP BY 文節で使用できるようにするために、 ネストした表式を使用してこのランダム値を設定する必要があります。
SELECT RANDID , AVG(EDLEVEL), AVG(SALARY) FROM ( SELECT EDLEVEL, SALARY, INTEGER(RAND()*5) AS RANDID FROM EMPLOYEE ) AS EMPRAND GROUP BY RANDID