平成27年度 春期 応用情報技術者試験 午前 問26
“電話番号”列に 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〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
NOT LIKE '010%' は「010 で始まらない」行を選びます。ただし,NULL との比較結果は「不定(UNKNOWN)」になるため,NULL の行は LIKE でも NOT LIKE でも選ばれません。
各行を確認します。
- 1001 A社:010-1234-xxxx → 010 で始まるので選ばれない
- 2001 B社:020-2345-xxxx → 選ばれる
- 3001 C社:NULL → 比較結果が不定なので選ばれない
- 4001 D社:030-3011-xxxx → 選ばれる
- 5001 E社:(010-4567-xxxx) → 先頭の文字が“(”で 010 で始まらないので選ばれる
したがって,結果の行数は 3 です。
-
ア: 1
誤り。結果の行数3と一致しません。 -
イ: 2
誤り。E社の電話番号は“(”で始まるため選ばれます。E社を除外すると2になりますが,正しくは3です。 -
ウ: 3
正しい。B社,D社,E社の3行が選ばれます。 -
エ: 4
誤り。NULL の C社も含めると4になりますが,NULL は NOT LIKE の条件でも選ばれません。
答え
ウ: 3
出典:平成27年度 春期 応用情報技術者試験 午前 問26