エクササイズ 1.3: 結果列の指定
このエクササイズを始める前に、エクササイズ
1.2: テーブルを使った SELECT ステートメントの作成を完了しておく必要があります。
このエクササイズでは、照会結果にどの列を表示するかを指定します。店の従業員は、顧客の名前、
顧客が借りた各ビデオのタイトル、各ビデオの返却予定の曜日を参照する必要があります。
2 つの列を含み、3 つ目の結果列として CASE 式を追加してから、別名を CASE 列式に割り当てることにしましょう。
結果列セットのための列の選択
顧客名およびビデオ・タイトルに関する結果列セットに、次の列を追加します。
- CUSTOMERS テーブルの NAME 列
- VIDEOS テーブルの TITLE 列
- 「テーブル」ペインで、C (CUSTOMER)
テーブルの「NAME」チェック・ボックスを選択します。
- 「デザイン」ペインの「列」ページで、「列」列の先頭の空きセルをダブルクリックして、
リストの「V.TITLE」をクリックしてから、Enter を押します。
「SQL ソース」ペインの SQL ソース・コードにそれらの列が追加されます。
結果列セットへの CASE 式の追加
照会結果セットの 3 列目は、列式の結果になります。ビデオ店のデータベースでは、DATE
形式でビデオの返却予定日のデータを格納しています。DATE
形式は、ビデオの返却予定日の名前を含む文字ストリングへ変換する必要があります。
データベース関数は、日付から、曜日に対応した整数を取得します。CASE
式を使って、関数を評価し、関数から戻された整数をそれぞれの曜日の文字ストリングに変換します
(例えば、1 は、照会結果では「Sunday」に変換されます)。CASE 式をビルドする場合は、
次の手順に従ってください。
- 「式ビルダー」ウィザードを開きます。
- 単純型 CASE 式を作成します。
- CASE 式による評価用の DAYOFWEEK 関数を追加します。
DAYOFWEEK 関数により、DATE 列から曜日を取得することができます。
この関数は、曜日に対応する整数を戻します。
- WHEN 文節を追加して CASE 式の結果を生成します。
- 「デザイン」ペインの「列」ページで、「列」列の 3 つ目のセル
(最初の空のセル) をダブルクリックし、リストの最後にある「式のビルド」をクリックして、Enter
を押します。
「式ビルダー」ウィザードが開きます。
- 単純型 CASE 式を作成します。
- 「式ビルダー」ページで、「CASE - 検索または単純型」をクリックし、
「次へ」をクリックします。
- 「CASE オプション」ページで、「単純 When
節」をクリックし、「次へ」をクリックします。
- 以下のように DAYOFWEEK 関数を追加します。
- 「単純型 CASE (Simple Type
Case)」ページの「CASE」リストで、「関数式のビルド」をクリックします。
「関数式ビルダー」ウィザードが開きます。
- 「関数カテゴリーを選択」リストで、「日付と時刻」をクリックします。
- 「関数を選択」リストで、「DAYOFWEEK」をクリックします。
- 「関数シグニチャーを選択」リストで、
「DAYOFWEEK(DATE)」-->「INTEGER」の順にクリックします。
関数シグニチャーに、1 つの引数が関数に必要であることが示されます。
- 引数テーブルの「値」列で、セルをクリックし、
リストの「R.DATE」をクリックして Enter を押します。
関数式の構文は、次の画面のセクション 5 に示されるように DAYOFWEEK(R.DATE) です。
- 「終了」をクリックして、CASE 式の作成に戻ります。
「単純型 CASE (Simple Type Case)」の上部の「CASE」リストに新規関数が表示されます。
- DAYOFWEEK 関数から戻された整数を文字ストリングに変換するため、CASE 式に 7 つの WHEN 文節
(曜日ごとに 1 つ) を追加します。
次の表に、DAYOFWEEK 関数から戻される各値に必要な文字ストリングを示しています。
DAYOFWEEK 値
| 変換後の文字ストリング
|
1 |
'Sunday' |
2 |
'Monday' |
3 |
'Tuesday' |
4 |
'Wednesday' |
5 |
'Thursday' |
6 |
'Friday' |
7 |
'Saturday' |
- テーブルで、「WHEN」の右側の「式」列の空のセルをダブルクリックし、
整数 1 を入力します。
このテーブル、および SQL ビルダーに関連付けられているその他のテーブルにデータを入力した場合は、
その入力を有効にするために、セルに値を入力した後で Enter
を押すか、別のセルにフォーカスを移動する必要があります。
- 「THEN」の右側の「結果式」列の空のセルをダブルクリックし、ストリング
'Sunday' を入力します。
- 表が次の画面と同じになるように、残りの 6 つの各曜日ごとに「WHEN 文節を追加 (Add WHEN
Clause)」をクリックして、ステップ 4a と 4b を繰り返します。

- 「終了」をクリックして「式ビルダー」ウィザードを閉じます。
完了した CASE 式が「デザイン」ペインの「列」ページ上の列式のリストに表示されます。
またこの式は SQL ステートメント・ソースにも表示されます。
列別名の追加
customerRentals SQL ステートメントに、CASE 列式用の列別名を追加します。
SQL ビルダーの「デザイン」ペインの「列」ページを使用します。
- 「デザイン」ペインで「列」タブをクリックします。
- CASE 列式の横の「別名」列でセルをクリックし、DUEDAY と入力します。
「SQL ソース」ペインで、列別名 AS DUEDAY が CASE 式の後ろに表示されます。
照会を実行すると、結果テーブルの列のタイトルとしてこの別名が表示されます。
「列」ページは次のようになります。

これで、エクササイズ 1.4: 結合、照会条件、および GROUP BY
文節の追加を始める準備完了です。