平成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%' (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成27年度 春期 応用情報技術者試験 午前 問26
- ア1
- イ2
- ウ3
- エ4
正解:ウ
解説
NOT LIKE '010%'は,電話番号が'010'で始まらない行を抽出します。電話番号がNULLの行は比較結果がNULLとなり,条件を満たさない扱いになります。表の5行のうち,010で始まるA社(除外),NULLのC社(除外)を除いたB社,D社,E社(“(010-4567-xxxx)”は先頭が“(”であり“010”では始まらないためNOT LIKEは真)の3行が抽出されます。
選択肢ごとの解説
- ア誤り。1行では抽出条件に合う行を数え漏らしています。
- イ誤り。2行では,E社のように文字列の先頭が“(”で始まり“010”では始まらない行を数え忘れています。
- ウ正しい。B社,D社,E社の3行が抽出されます。
- エ誤り。4行では,NULLを含むC社の行も条件を満たすとして数えてしまっていますが,NULLとの比較結果は真にならないため抽出されません。