3.3 别名和DISTINCT短语的使用
3.3.1 使用别名
在SQL中,为了方便引用或增加可读性,可以为表或者列起一个简单易读的别名。
(1)给表起别名
给表起别名的主要目的是为了简单明了的标注一个表,主要用在如下的情况:
① 表的名称过长,引用起来较为烦琐;
② 多表查询的时候,不同表中存在相同的列名,需要使用表名来指示“列”来自某个表,为了更加简单的指代某个表,需要使用表别名。
给表起别名时,只需在原表名后加上“AS”,再加上表别名即可,语法如下:
SELECT 列名
FROM [表名$] AS 表别名
(2)给列起别名
给列起别名可以方便读者阅读,主要用在如下的情况:
① 原有列名可读性较差,比如使用英文名称或者名称缩写,无法“见名知意”,可以使用简单易懂的中文列名来替代这些列名,增加可读性;
② 多表查询时,如果查询结果中出现了来自不同表但具有相同列名的列,可以通过起别名来进行区分;
③ 在查询的结果中,对于通过算术运算或者聚集函数运算后增加的列,其列名是由系统自动生成的,可以对这样的列起别名以增加可读性。
给列起别名的语法格式为:
SELECT 列名1 AS 列别名1,列名2 AS 列别名2……
FROM [表名$]
例如,对于如图3.12所示的“工资表.xlsx”,如果要对“实发工资”乘以12求得“年薪”,那么可以在“命令文本”框中输入如下SQL语句:
SELECT 工资号,实发工资,实发工资*12
FROM [工资表$A2:F12]
如图3.14所示,在查询结果中,求得的“年薪”由系统自动加上了列名“Expr1001”,如果把列名改为“年薪”,则读取起来更加方便。
图3.14 “求年薪”查询结果
在“工资表.xlsx”工作簿中增加一个工作表“使用列别名”,按照前述步骤,在“命令文本”框中输入如下SQL语句,得到如图3.15所示的查询结果。
图3.15 使用列别名
SELECT 工资号,实发工资,实发工资*12 AS 年薪
FROM [工资表$A2:F12]