练习 1.3:指定结果列
在开始之前,必须完成练习 1.2:使用表创建 SELECT 语句。
在本练习中,将指定哪些列要显示在查询结果中。音像店职员需要了解客户的姓名、客户租借的每个录像带的名称以及每个录像带将在星期几到期。将包括两列并为第三个结果列添加 CASE 表达式,然后为该 CASE 列表达式指定别名。
为结果列集选择列
将以下列添加至结果列集,作为客户姓名和录像带名称:
- CUSTOMERS 表中的 NAME 列
- VIDEOS 表中的 TITLE 列
- 在“表”窗格中,选择 C (CUSTOMER) 表中的 NAME 复选框。
- 在“设计”窗格的“列”页面上,双击列列中的第一个空单元格,单击列表中的 V.TITLE,然后按 Enter 键。
这样就将这些列添加到“SQL 源代码”窗格的 SQL 源代码中了。
将 CASE 表达式添加至结果列集
查询结果集的第三列将是列表达式的结果。音像店数据库以日期格式存储录像带到期的日期。需要将日期格式转换为包含录像带到期日期的名称的字符串。数据库函数将根据与星期几相对应的日期获取一个整数。使用 CASE 表达式对该函数进行求值,并将该函数返回的整数转换为表示星期几的字符串(例如,1 在查询结果中将更改为“Sunday”)。执行下列活动以构建 CASE 表达式:
- 打开“表达式构建器”向导。
- 创建一个简单类型的 CASE 表达式。
- 添加 DAYOFWEEK 函数以由 CASE 表达式进行求值。
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 |
'Sunday' |
2 |
'Monday' |
3 |
'Tuesday' |
4 |
'Wednesday' |
5 |
'Thursday' |
6 |
'Friday' |
7 |
'Saturday' |
- 在表中,双击 WHEN 右边表达式列中的空单元格,然后输入整数 1。
在此表或与“SQL 构建器”关联的其它表中输入数据时,为了使输入生效,在单元格中输入值以后,必须按 Enter 键或将焦点切换到另一个单元格。
- 双击 WHEN 右边结果表达式列中的空单元格,然后输入字符串 'Sunday'。
- 对于一个星期剩余六天中的每天,都单击添加 WHEN 子句,然后重复步骤 4a 和 4b,以便您的表看起来类似于下面的屏幕捕捉:

- 单击完成以关闭“表达式构建器”向导。
已完成的 CASE 表达式显示在“设计”窗格的“列”页面上的列表达式列表中,还显示在 SQL 语句源代码中。
添加列别名
在 customerRentals SQL 语句中,为 CASE 列表达式添加列别名。将使用“SQL 构建器”的“设计”窗格中的“列”页面。
- 单击“设计”窗格中的列选项卡。
- 单击 CASE 列表达式旁边的别名列中的单元格,然后输入 DUEDAY。
在“SQL 源代码”窗格中,列别名 AS DUEDAY 显示在 CASE 表达式后面。运行查询时,此别名显示为结果表中列的标题。
“列”页面现在看起来为如下所示:

现在,您可以开始进行练习 1.4:添加连接、查询条件和 GROUP BY 子句了。