以下のSQL文で、何行のデータが返されますか。
SELECT employee_id, salary FROM employees;
EMPLOYEE_ID SALARY
------------ -------
100 5000
101 4000
102 3000
103 3000
104 2000
SELECT employee_id, salary
FROM employees
ORDER BY salary DESC
FETCH FIRST 3 ROWS ONLY;A2行
B3行✓
C4行
Dエラーになる
正解:B解説
FETCH FIRST <N> ROWS ONLYは、ORDER BY句で並べた結果の先頭からN行を返します。
3行目と4行目は給与がどちらも3000ですが、ONLYでは同一値の行があっても追加されないため、3行だけが返されます。
SELECT employee_id, salary
FROM employees
ORDER BY salary DESC
FETCH FIRST 3 ROWS ONLY;
EMPLOYEE_ID SALARY
------------ -------
100 5000
101 4000
102 3000ONLYとWITH TIESの違い
| 指定 | 返される行 |
|---|---|
| FETCH FIRST <N> ROWS ONLY | N行 |
| FETCH FIRST <N> ROWS WITH TIES | N行+N行目と同一値の行 |