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]