“電話番号”列に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%'
テクノロジ系
“電話番号”列に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%'
正解 ウ
NULLとの比較は真にも偽にもならない不定(UNKNOWN)なので、C社の行は選ばれません。E社の値は'('で始まるため'010%'に一致せず、結果はB社、D社、E社の3行です。
LIKE '010%'は「010で始まる文字列」に一致します。NOT LIKEは、一致しない行を選びます。A社は010で始まるので除かれます。B社(020)とD社(030)は選ばれます。E社は先頭が'('なので'010%'に一致せず、選ばれます。C社はNULLで、比較の結果がUNKNOWNになり、WHERE句では選ばれません。結果は3行です。
ア:NOT LIKEで選ばれるのは、B社、D社、E社の3行です。1行になる行の数え方はありません。
イ:E社の値は'('で始まるので、'010%'には一致しません。E社も結果に含まれます。
エ:NULLに対するNOT LIKEは真ではなくUNKNOWNになります。C社の行は結果に含まれません。
出典:平成27年度 春期 応用情報技術者試験 問26
全年度から出題。10問で実力を判定します。登録不要。
出典:平成27年度 春期 応用情報技術者試験 問26(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方