練習 1.3:指定結果直欄
在開始之前,您必須先完成練習 1.2:建立含表格的 SELECT 陳述式。
在這個練習中,您會指定哪些直欄要顯示在查詢結果中。 商店的員工需要看到客戶姓名、客戶租借之每一部影片的片名、以及每一部影片會在星期幾到期。您會納入其中兩個直欄,並新增一個 CASE 表示式作為第三個結果直欄,然後指派別名給 CASE 直欄表示式。
選取直欄作為結果直欄集
您會新增下列直欄到客戶姓名和影片片名的結果直欄集:
- CUSTOMERS 表格中的 NAME 直欄
- VIDEOS 表格中的 TITLE 直欄
- 在「表格」窗格,選取 C (CUSTOMER) 表格中的 NAME 勾選框。
- 在「設計」窗格的「直欄」頁面中,按兩下直欄這個直欄中的第一個空資料格、按一下清單中的 V.TITLE,然後按 Enter 鍵。
這些直欄會加入「SQL 程式碼」窗格的 SQL 程式碼中。
將 CASE 表示式加入結果直欄集
查詢結果集的第三個直欄是直欄表示式的結果。影片出租店的資料庫是以 DATE 格式儲存影片到期日。DATE 格式需要轉換成字元字串,其中含有影片到期日的名稱。資料庫函數會從日期取得一個對應到星期幾的整數。您會使用 CASE 表示式來評估該函數,並將函數傳回的整數轉換成代表一星期中每一天的字元字串(比方說,1 在查詢結果中會變更為 "星期日")。
您會執行下列活動來建置 CASE 表示式:
- 開啟「表示式建置器」精靈。
- 建立簡式類型 CASE 表示式。
- 新增由 CASE 表示式評估的 DAYOFWEEK 函數。
DAYOFWEEK 函數可讓您從 DATE 直欄取得星期幾的值。這個函數會傳回一個對應到星期幾的整數。
- 新增 WHEN 子句來產生 CASE 表示式的結果。
- 在「設計」窗格的「直欄」頁面中,按兩下直欄這個直欄中的第三個資料格(第一個空的資料格)、按一下清單尾端的建置表示式,然後按 Enter 鍵。
這時會開啟「表示式建置器」精靈。
- 建立簡式類型 CASE 表示式。
- 在「表示式建置器」頁面中,按一下 CASE - 搜尋或簡式類型,然後按下一步。
- 在「CASE 選項」頁面中,按一下簡式 WHEN 子句,然後按下一步。
- 新增 DAYOFWEEK 函數:
- 在「簡式類型 Case」頁面中,於 CASE 清單中按一下建置函數表示式。這時會開啟「函數表示式建置器」精靈。
- 在選取函數種類清單中,按一下日期和時間。
- 在選取函數清單中,按一下 DAYOFWEEK。
- 在選取函數簽章清單中,按一下 DAYOFWEEK(DATE) --> INTEGER。
這個函數簽章顯示該函數需要一個引數。
- 在引數表的值直欄中,按一下資料格、按一下清單中的 R.DATE,然後按 Enter 鍵。
該函數表示式的語法為 DAYOFWEEK(R.DATE),如下列擷取畫面的第 5 個區段所示:

- 按一下完成回到建構中的 CASE 表示式。
這時新的函數會顯示在「簡式類型 Case」頁面頂端的 CASE 清單中。
- 新增七個 WHEN 子句到 CASE 表示式(一星期中的每一天一個),將 DAYOFWEEK 函數傳回的整數轉換成字元字串。下表顯示 DAYOFWEEK 函數傳回的每一個值所需的字元字串:
DAYOFWEEK 值
| 產生的字元字串
|
1 |
'星期日' |
2 |
'星期一' |
3 |
'星期二' |
4 |
'星期三' |
5 |
'星期四' |
6 |
'星期五' |
7 |
'星期六' |
- 在表格中,於 WHEN 右邊的表示式直欄中按兩下空的資料格,然後輸入整數 1。
當您在這個表格以及其他與 SQL 建置器相關聯的表格中輸入資料時,為了使項目生效,在您於資料格中輸入值之後,您必須按 Enter 鍵或將焦點變更到另一個資料格。
- 在 THEN 右邊的結果表示式直欄中,按兩下空的資料格,然後輸入字串 '星期日'。
- 針對一星期中其餘六天的每一天,按一下新增 WHEN 子句,然後重複步驟 4a 和 4b,使得表格看起來類似如下所示的擷取畫面:

- 按一下完成關閉「表示式建置器」精靈。
完成的 CASE 表示式會顯示在「設計」窗格之「直欄」頁面的直欄表示式清單中,也會顯示在 SQL 陳述式程式碼中。
新增直欄別名
在 customerRentals SQL 陳述式中,您會新增 CASE 直欄表示式的直欄別名。您會用到 SQL 建置器之「設計」窗格中的「直欄」頁面。
- 在「設計」窗格中,按一下直欄標籤。
- 按一下 CASE 直欄表示式旁的別名直欄中的資料格,然後輸入 DUEDAY。
在「SQL 程式碼」窗格中,直欄別名 AS DUEDAY 會顯示在 CASE 表示式之後。當您執行查詢時,這個別名會在結果表格中顯示成直欄的標題。
這時「直欄」頁面看起來如下:

現在您已準備好開始進行練習 1.4:新增合併、查詢條件以及 GROUP BY 子句。