8.3 任务小结
2025年11月13日
图8.13 使用别名替换表的字段名
(4)查询中包含计算结果的列
在查询中经常会需要根据基本表某些列的数据进行计算,如根据每个学生的出生日期计算显示其当前年龄,根据单价和数量计算显示总金额,等等。
SELECT子句中的<列名>可以是基本表中的字段名,也可以是计算表达式,甚至是函数或字符串常量等。
例8.4 查询学生姓名、性别和年龄。
Jxgl数据库中的student表包含有“出生日期”字段,其年龄只能通过计算得到。查询语句如下:
USE JXGL
SELECT sn AS姓名,sex AS性别,YEAR(GETDATE())-YEAR(birthday)
FROM student
GO
语句中出现的YEAR(GETDATE())-YEAR(birthday)是用系统日期的年份减去学生出生日期的年份,从而计算出其年龄。YEAR()和GETDATE()均是SQL Server中的两个函数。其中,GETDATE()用于返回系统日期,YEAY()用于返回给定日期数据中的年份。如year(′2013-12-25′)将返回2013。
执行结果如图8.14所示。从执行结果可知,对于计算结果的列,如果未指定别名则SQL Server以“(无列名)”标示。因此,应该采用指定别名的方法为计算列指定一个明确的列名。