練習 1.3:指定結果直欄

在開始之前,您必須先完成練習 1.2:建立含表格的 SELECT 陳述式

在這個練習中,您會指定哪些直欄要顯示在查詢結果中。 商店的員工需要看到客戶姓名、客戶租借之每一部影片的片名、以及每一部影片會在星期幾到期。您會納入其中兩個直欄,並新增一個 CASE 表示式作為第三個結果直欄,然後指派別名給 CASE 直欄表示式。

選取直欄作為結果直欄集

您會新增下列直欄到客戶姓名和影片片名的結果直欄集:

  1. 在「表格」窗格,選取 C (CUSTOMER) 表格中的 NAME 勾選框。
  2. 在「設計」窗格的「直欄」頁面中,按兩下直欄這個直欄中的第一個空資料格、按一下清單中的 V.TITLE,然後按 Enter 鍵。
    這些直欄會加入「SQL 程式碼」窗格的 SQL 程式碼中。

將 CASE 表示式加入結果直欄集

查詢結果集的第三個直欄是直欄表示式的結果。影片出租店的資料庫是以 DATE 格式儲存影片到期日。DATE 格式需要轉換成字元字串,其中含有影片到期日的名稱。資料庫函數會從日期取得一個對應到星期幾的整數。您會使用 CASE 表示式來評估該函數,並將函數傳回的整數轉換成代表一星期中每一天的字元字串(比方說,1 在查詢結果中會變更為 "星期日")。 您會執行下列活動來建置 CASE 表示式:


  1. 在「設計」窗格的「直欄」頁面中,按兩下直欄這個直欄中的第三個資料格(第一個空的資料格)、按一下清單尾端的建置表示式,然後按 Enter 鍵。
    這時會開啟「表示式建置器」精靈。
  2. 建立簡式類型 CASE 表示式。
    1. 在「表示式建置器」頁面中,按一下 CASE - 搜尋或簡式類型,然後按下一步
    2. 在「CASE 選項」頁面中,按一下簡式 WHEN 子句,然後按下一步
  3. 新增 DAYOFWEEK 函數:
    1. 在「簡式類型 Case」頁面中,於 CASE 清單中按一下建置函數表示式。這時會開啟「函數表示式建置器」精靈。
    2. 選取函數種類清單中,按一下日期和時間
    3. 選取函數清單中,按一下 DAYOFWEEK
    4. 選取函數簽章清單中,按一下 DAYOFWEEK(DATE) --> INTEGER
      這個函數簽章顯示該函數需要一個引數。
    5. 在引數表的直欄中,按一下資料格、按一下清單中的 R.DATE,然後按 Enter 鍵。
      該函數表示式的語法為 DAYOFWEEK(R.DATE),如下列擷取畫面的第 5 個區段所示:

      「函數表示式建置器」精靈

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

      完成的 WHEN 子句表格

    4. 按一下完成關閉「表示式建置器」精靈。

完成的 CASE 表示式會顯示在「設計」窗格之「直欄」頁面的直欄表示式清單中,也會顯示在 SQL 陳述式程式碼中。

新增直欄別名

在 customerRentals SQL 陳述式中,您會新增 CASE 直欄表示式的直欄別名。您會用到 SQL 建置器之「設計」窗格中的「直欄」頁面。

  1. 在「設計」窗格中,按一下直欄標籤。
  2. 按一下 CASE 直欄表示式旁的別名直欄中的資料格,然後輸入 DUEDAY
    在「SQL 程式碼」窗格中,直欄別名 AS DUEDAY 會顯示在 CASE 表示式之後。當您執行查詢時,這個別名會在結果表格中顯示成直欄的標題。

這時「直欄」頁面看起來如下:

「設計」窗格 - 完成的「直欄」頁面

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

使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.