commission_pctがNULLの行が先頭に表示されるSQL文はどれですか。2つ選択してください。
SELECT employee_id, commission_pct FROM employees;
EMPLOYEE_ID COMMISSION_PCT
------------ ---------------
100 .2
101 .4
102 .1
103
104 .3ASELECT employee_id, commission_pct FROM employees ORDER BY commission_pct;
BSELECT employee_id, commission_pct FROM employees ORDER BY commission_pct DESC;✓
CSELECT employee_id, commission_pct FROM employees ORDER BY commission_pct NULLS FIRST;✓
DSELECT employee_id, commission_pct FROM employees ORDER BY commission_pct DESC NULLS LAST;
正解:B・C解説
Oracle DatabaseではNULLを「最大の値」として扱うため、並び順を指定しない場合のNULLの位置は次のとおりです。
NULLの表示位置の既定値
| 並び順 | 既定のNULLの位置 |
|---|---|
| 昇順(ASC) | 最後(NULLS LAST) |
| 降順(DESC) | 先頭(NULLS FIRST) |
各選択肢の検討
- A(誤):並び順を省略すると昇順になり、NULLは最後に表示されます。
- B(正):降順の既定はNULLS FIRSTのため、NULLが先頭に表示されます。
- C(正):昇順でも
NULLS FIRSTを指定すれば、NULLが先頭に表示されます。 - D(誤):
NULLS LASTを指定しているため、NULLは最後に表示されます。