SQL SELECT文を使用したデータの取得、制限およびソート9 / 50 問

以下のSQL文で、どのような順序で行が返されますか。

SELECT employee_id, commission_pct FROM employees;

EMPLOYEE_ID  COMMISSION_PCT
------------ ---------------
100          .2
101          .4
102          .1
103
104          .3

SELECT employee_id, commission_pct
FROM employees
ORDER BY commission_pct DESC NULLS LAST;
A103→101→104→100→102
B101→104→100→102→103✓
C102→100→104→101→103
D103→102→100→104→101
正解:B解説

NULLS FIRST/NULLS LASTを指定すると、ORDER BY句でソートしたときのNULLの表示位置を指定できます。
今回はDESCで降順(.4→.3→.2→.1)に並べたうえでNULLS LASTを指定しているため、NULLの行(103)が最後に返されます。

SELECT employee_id, commission_pct
FROM employees
ORDER BY commission_pct DESC NULLS LAST;

EMPLOYEE_ID  COMMISSION_PCT
------------ ---------------
101          .4
104          .3
100          .2
102          .1
103

NULLの表示位置の既定値

並び順既定のNULLの位置
昇順(ASC)最後(NULLS LAST)
降順(DESC)先頭(NULLS FIRST)

Oracle DatabaseではNULLを「最大の値」として扱うため、降順ではNULLが先頭になります。
各選択肢の並び順

選択肢該当するORDER BY句
AORDER BY commission_pct DESC(既定)
BORDER BY commission_pct DESC NULLS LAST
CORDER BY commission_pct ASC(既定)
DORDER BY commission_pct ASC NULLS FIRST

前後の問題