查询结果集的第三列将充当列表达式的结果。视频商店数据库中以 DATE 格式存储了视频的到期日期。需将 DATE 格式转换为其中包含视频到期日期名称的字符串。数据库函数将从对应星期几的日期获取一个整数。您将使用 CASE 表达式对该函数求值,并将该函数返回的整数转换为代表每周各天的字符串(例如,1 将在查询结果中更改为“星期天”)。
您将执行以下活动来构建 CASE 表达式:
- 打开“表达式构建器”向导。
- 创建简单类型的 CASE 表达式。
- 添加 DAYOFWEEK 函数以供 CASE 表达式求值。DAYOFWEEK 函数使您可以从 DATE 列获取星期几。此函数返回一个与星期几对应的整数。
- 添加 WHEN 子句,以便为 CASE 表达式生成结果。
要添加 CASE 表达式:
- 在“设计”窗格中的“列”页面上,双击列列中的第三个单元格(即第一个空单元格),单击列表结尾部分的构建表达式,然后按 Enter 键。 “表达式构建器”向导会打开。
- 创建简单类型的 CASE 表达式。
- 在“表达式类型”页面中,单击 CASE - 搜索或简单,然后单击下一步。
- 在“CASE 选项”页面中,单击 Simple-WHEN-Clause,然后单击下一步。
- 要添加 DAYOFWEEK 函数:
- 在“简单 CASE 表达式”页面中的 CASE 列表内,单击构建函数表达式。 “函数表达式构建器”向导会打开。
- 在选择函数类别列表中,单击日期和时间。
- 在选择函数列表中,单击 DAYOFWEEK。
- 在选择函数特征符列表中,单击 DAYOFWEEK(DATE) --> INTEGER。 函数特征符显示该函数需要一个参数。
- 在参数表的值列中,双击单元格,单击列表中的 R.DATE,然后按 Enter 键。 该函数表达式的语法为 DAYOFWEEK(DATE),如下图部分 5 中所示:

请注意,您为 DATE 列选择的 R 表限定符不会在此向导中显示。您返回 SQL 查询构建器时,将在表达式中显示该限定符。
- 单击完成返回构造 CASE 表达式。
- 在 CASE 列表中,选择 DAYOFWEEK(DATE)。
- 向 CASE 表达式添加 7 个 WHEN 子句(一周中每天添加一个),以便将 DAYOFWEEK 函数返回的整数转换为字符串。 下表显示 DAYOFWEEK 函数返回的各值所需的字符串:
表 1. DAYOFWEEK 值和产生的字符串DAYOFWEEK 值 |
产生的字符串 |
1 |
'Sunday' |
2 |
'Monday' |
3 |
'Tuesday' |
4 |
'Wednesday' |
5 |
'Thursday' |
6 |
'Friday' |
7 |
'Saturday' |
- 在该表中,双击 WHEN 右侧表达式列中的空单元格,然后输入整数 1。 在此表和与 SQL 查询构建器相关联的其他表中输入数据时,要使输入内容生效,在单元格中输入值之后必须按 Enter 键,或将焦点更改到另一个单元格。
- 双击 THEN 右侧结果表达式列中的空单元格,然后输入字符串 'Sunday'。
- 为一周其余六天每天单击添加 WHEN 子句,然后重复步骤 4a 和 4b,以便您的表外观类似下面显示的图像:

- 单击完成关闭“表达式构建器”向导。
已完成的 CASE 表达式将在“设计”窗格内“列”页面中的列表达式列表中显示,还将在 SQL 语句源代码中显示。