問93
頻出度★★☆
関係データベースで管理している“従業員”表から,氏名が‘%葉_’に該当する従業員を抽出した。抽出された従業員は何名か。ここで,“_”は任意の1文字を表し,“%”は0文字以上の任意の文字列を表すものとする。 従業員
| 従業員番号 | 氏名 |
|---|---|
| S001 | 千葉翔 |
| S002 | 葉山花子 |
| S003 | 鈴木葉子 |
| S004 | 佐藤乙葉 |
| S005 | 秋葉彩葉 |
| S006 | 稲葉小春 |
この問題の解説と、これまでの解答の記録です。
関係データベースで管理している“従業員”表から,氏名が‘%葉_’に該当する従業員を抽出した。抽出された従業員は何名か。ここで,“_”は任意の1文字を表し,“%”は0文字以上の任意の文字列を表すものとする。 従業員
| 従業員番号 | 氏名 |
|---|---|
| S001 | 千葉翔 |
| S002 | 葉山花子 |
| S003 | 鈴木葉子 |
| S004 | 佐藤乙葉 |
| S005 | 秋葉彩葉 |
| S006 | 稲葉小春 |
1名では数え漏れです。条件に合うのは千葉翔だけでなく鈴木葉子も該当し、合計2名になります。葉が後ろから2文字目に来る氏名を1件しか拾えていない誤りです。
正解 パターン「%葉_」は、ワイルドカードの定義より『%(0文字以上の任意文字列)+葉+_(任意の1文字)』と読み解けます。つまり「最後から2番目の文字が葉で、その後ろにちょうど1文字だけ続く氏名」が抽出条件です。各行を当てはめると、千葉翔(千/葉/翔:葉の後ろは翔の1文字)と鈴木葉子(鈴木/葉/子:葉の後ろは子の1文字)の2件だけがこの形に一致します。よって抽出される従業員は2名で、正解はイです。
3名は数え過ぎです。佐藤乙葉は葉が最後の文字で、その後ろに1文字(_)が無いため不一致。葉で終わる氏名を誤って含めると過剰になります。
4名は数え過ぎです。葉山花子・秋葉彩葉・稲葉小春はいずれも葉の後ろに2文字以上続き、_(ちょうど1文字)の条件を満たしません。葉を含むだけの氏名まで数えた誤りです。