NOT LIKE と NULL の検索結果
出典: 平成27年度 春期 応用情報技術者試験 午前 問26 (IPA)
“電話番号”列に NULL を含む“取引先”表に対して,SQL 文を実行した結果の行数は幾つか。
取引先
| 取引先コード | 取引先名 | 電話番号 |
|---|---|---|
| 1001 | A 社 | 010-1234-xxxx |
| 2001 | B 社 | 020-2345-xxxx |
| 3001 | C 社 | NULL |
| 4001 | D 社 | 030-3011-xxxx |
| 5001 | E 社 | (010-4567-xxxx) |
〔SQL 文〕
SELECT * FROM 取引先 WHERE 電話番号 NOT LIKE '010%'- ア 1
- イ 2
- ウ 3
- エ 4
正解と解説を見る
正解: ウ
- ア: 1 行だけでは足りません。B 社、D 社、E 社の 3 行が条件を満たします。
- イ: B 社と D 社だけで数えた値です。E 社は "(" で始まるので条件を満たします。
- ウ: B 社、D 社、E 社の 3 行が選ばれます。NULL の C 社は含まれません。正しい答えです。
- エ: NULL の C 社まで含めた値です。NULL との比較は真にならないので、C 社は選ばれません。
ポイント
NOT LIKE '010%'は、電話番号が 010 で始まらない行を選びます。- A 社: 010-1234-xxxx は一致するので除外されます。
- B 社 (020...)、D 社 (030...) は一致しないので 選ばれます。
- E 社: 先頭が "(" なので 010 で始まらず、選ばれます。
- C 社: NULL との比較結果は「不定」となり、WHERE 句の条件を満たさないので 選ばれません。
- よって B、D、E の 3 行 です。