数据库技术及应用
上QQ阅读APP看书,第一时间看更新

4.4.2 含新字段查询

含新字段查询指的是查询结果的新字段列是表达式的计算结果,而不是直接来源于表或查询。

【例4.18】创建一个如图4.40所示的显示学生的年级和政治面貌的查询。

分析:

(1)显示字段:姓名、性别、年级和政治面貌。其中“年级”字段不在学生表中,需要通过表达式计算取得,取学生学号的前4位数字作为年级。需要使用表达式 Left([学生]! [xh],4)。想一想,还有什么办法可以计算年级。

(2)数据来源:“学生”表。

具体操作步骤如下:

(1)打开查询设计视图,添加数据源“学生”。

(2)双击添加字段:姓名、性别、年级和政治面貌。

(3)“年级”字段是新字段,需要书写表达式。建议初学者在“表达式生成器”中编辑表达式。打开生成器的方法是,右击“字段”行中空白列的空白部分,在弹出的快捷菜单中选择“生成器”命令,弹出“表达式生成器”对话框,如图4.41所示。

“表达式生成器”的表达式编辑区域在左上角,函数、表的字段、操作符等组成表达式的元素可以在“表达式生成器”的下部区域从左到右逐步选择。在本例中,表达式是一个字符串函数,所以选择“函数”“内置函数”“文本”“Left”,在“表达式生成器”右下角的列表框中双击“Left”,该函数就被读取到生成器的表达式编辑区,同时还会显示函数需要的参数,如图4.42所示。

图4.40 学生年级和政治面貌查询结果

图4.41 “表达式生成器”对话框

写入函数名称后需要编辑函数的参数,根据提示Left()函数有两个参数,第一个参数是文本表达式,第二个参数是从左边取子串的长度。由于要求处理学号字段的值,所以该例的第一参数应选择来源于“学生”表的学号字段名,所以删除第一个参数提示,然后依次选择生成器下部的“学籍管理”→“表”→“学生”→“xh”,在生成器右下角的列表框中双击“值”,该字段名就成为Left()函数的第一个参数。最后修改Left()函数的第二个参数为数值4,该表达式编辑完成,如图4.43所示。

图4.42 例4.18新字段表达式-Left()函数

图4.43 例4.18新字段表达式

单击“确定”按钮,返回查询设计视图。观察刚才写入的表达式,形如:,其中“表达式1:”表示新生成字段显示的字段名,按照题目要求将此部分改为“年级:”。如果表达式书写足够熟练,也可以不通过“表达式生成器”而直接书写。

调整字段名顺序,查询建立完成,设计视图中的设置如图4.44所示。

图4.44 例4.18查询设计视图设置

【例4.19】创建一个如图4.45所示的学生出生日期的年月日查询。

分析:

(1)显示字段:学号、姓名、性别和出生日期的年、月、日。其中后三项是由“学生”表的出生日期字段计算所得,属于新生成字段。出生日期字段是日期/时间型数据,使用Year()、Month()、Day()函数可以取得日期数据的年、月、日。

(2)数据来源:“学生”表。

图4.45 学生出生日期的年月日查询结果

具体操作步骤如下:

(1)打开查询设计视图,添加数据源“学生”。

(2)双击添加字段:学号、姓名、性别。

(3)在“字段”行添加3个新字段:“出生年份”“出生月份”“生日”。提示:使用表达式生成器。

调整字段名顺序,查询建立完成,设计视图中的设置如图4.46所示。

图4.46 例4.19查询设计视图设置

思考:创建一个查询,将学生的出生年份和生日分别显示,如图4.47所示。

图4.47 学生出生年份和生日查询

提示:在例4.19中修改,生日的表达式是由月份和生日做字符串连接而成的。