sql 表的别名到底要怎么定义

经常会需要多次用到同一个表,是否只要定义一次别名就够了?子句里面还是主句里面?自己看别人的语句,明明定义过,但是还是有的地方一定要重新写一遍,不能用别名。这跟语句的执行顺序有关系吗?求高手指点。比如下面语句中的A表,定义之后,还是有两个地方要重新写。为什么?
SELECT D.城市,D.城市1,SUM(D.销售数量) AS 销售总量
FROM
(SELECT C.*,B.城市1
FROM [手机销售$] C,
(SELECT
城市,
( SELECT COUNT(*)+1
FROM
( SELECT 城市,SUM(销售数量) AS 数量汇总
FROM [手机销售$]
GROUP BY 城市)
WHERE 数量汇总>A.数量汇总) AS T,
LEFT(" ",4-LEN(T)) & T & "-" & 城市 AS 城市1
FROM
(SELECT 城市,SUM(销售数量) AS 数量汇总
FROM [手机销售$]
GROUP BY 城市) A )B
WHERE C.城市=B.城市) D
GROUP BY D.城市,D.城市1
ORDER BY D.城市1

表名、列明后面接as xx,xx就是表/列的别名,as可省略
别名通常有两个作用,1是缩短对象的长度,方便书写,使名称语句简洁
2是区别同名对象,如自连接查询,同一个表要连接查询自身,那么一定要用别名来区分表名及列名
还有一点需要注意的是,如遇到引用派生表的情况,也一定要加表别名,如你的where 数量汇总这句前面的from(select)内部的select语句即是派生表,在查询分析器看来,这只是一个没有命名的数据集合,所以要想用from引用它需要给它加一个表别名来标识这个集合是个可用表追问

为什么9-11行的语句不能用A代替,倒数4-6行定义了A作为别名的

追答

首先,倒数4-6行是个派生表,肯定要加别名,我上面提到过了
然后9-11行这里不能引用派生表A,貌似派生表不能被引用多次,
如果想要多次引用需要用公用表表达式,可以将派生表临时封装成视图引用

温馨提示:内容为网友见解,仅供参考
无其他回答

定义列的别名用到的命令是
定义列的别名用到的命令是 "AS"。在SQL(结构化查询语言)中,我们经常需要为查询结果中的列设定更具可读性的名称,或者在计算字段时使用临时名称。这时,我们就可以使用 "AS" 关键字来为列定义别名。别名可以是任何有效的标识符,通常用于使查询结果的列名更具描述性或简化复杂的表达式。例如,假设我们...

如何在 SQL 语句中定义字段别名、表别名
在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语法,几乎所有的数据库系统都支持。通过关键字 AS 来指定。表别名语法:SELECT column FROM table AS table_alias MySQL 字段别名(列别名):同本文前文讲述的表别名一样,SQL(MySQL) 也支持对表的字段(列)设置...

sql中如何为查询出来的表起别名呢,而且能根据查询后的表别名就查找
1、查看数据库中的表信息。2、首先看列的别名:SELECTcolumn_nameASalias_nameFROMtable_name。3、再来看表的别名的写法:SELECTcolumn_name(s)FROMtable_nameASalias_name。4、那么在表的别名可以写在列名那。5、也可以写在条件语句中。注意事项:SQL的核心部分相当于关系代数,但又具有关系代数所没有...

MySQL中别名的含义及使用方法mysql中别名什么意思
MySQL中别名可以理解为对已有的表或列名进行重命名,为它们起一个新的名字,便于在SQL语句中的引用。使用别名可以使SQL语句更加简洁易懂,可以有效地提高查询效率。二、别名的语法 别名的语法如下:1. 对表进行别名 SELECT column_name(s)FROM table_name AS alias_name WHERE conditions;其中,table_na...

sql sever 2005中 表的别名的使用问题,各位大侠讲解一下呗,具体格式...
1 列标题+空格+别名 例如:select sname Name from student 其中(sname 是表student中的列明,Name是别名)2 列标题=别名 例如:select sname=Name from student 其中(sname 是表student中的列明,Name是别名)3 列标题as别名 例如:select sname as Name from student 参考资料:数据库系统...

数据库中as的用法
数据库中sql语句使用as可以为表名、列明创建别名,目的是为了让sql语句可读性更强。具体用法如下:1、列的SQL别名语法 SELECTcolumn_nameASalias_nameFROMtable_name;其中,alias_name被定义为列column_name的别名。2、表的SQL别名语法 SELECTcolumn_name1,column_name2FROMtable_nameASalias_name;其中,...

sql语句中的T,G啊什么的是什么意思
那个t相当于把 select 姓名,u_sub='语文', u_score=语文 from score2 union all select 姓名,u_sub='数学', u_score=数学 from score2 这个起了个别名 当你要用倒这个里面的字段的时候 直接t.u_sub就能用了

MySQL表别名用法简介mysql中为表取别名
上面的 SQL 语句中,我们为 department 表定义了两个不同的别名 A 和 B,然后使用这些别名进行自连接操作。通过这种方式,我们可以查询出所有具有上下级关系的部门信息。在使用 MySQL 表别名时,需要注意以下几点:1. 别名应该具有描述性,可以更好地代表实际表的名称和含义;2. 别名应该与实际表名区分...

用sql语句create table创建表时可以定义列别名吗。。。
定义表的时候是不可以定义别名的,查询的时候为了显示和执行效率的需要可以定义别名。因为既然你想在建表的时候定义别名,为什么不在定义表的时候就用这个别名作为表的字段呢。从这个角度想,建表的时候是不可以定义别名的。-- 以上,希望对你有所帮助。

在SQL 语言中,对AS的用法说明一下,谢谢
as 是 alias 的缩写,是“别名”的意思。列如:select to_char(sysdate,'yyyy-mm-dd') as 今天日期 from dual;to_char(sysdate,'yyyy-mm-dd') 这一列在显示的时候列名就叫 "今天日期"

相似回答