sqlserver关于别名的问题

2个表结构完全想相同的表A,B相同的列名为c1,c2,c3,c4selectA[1].*from(selectc1,c2,sum(c3)asc3fromA[2]group... 2个表结构完全想相同的表A,B
相同的列名为 c1,c2,c3,c4

select A[1].* from

select c1,c2,sum(c3) as c3 from A[2] group by c1,c2

)as A[3]
inner join (
select * from A[4]
union all

select * from B

) as t
on A[5].c1 = t.c1

上面表A经过分类汇总以后又命名成了A
上面一共有5个A,我在旁边用中括号【】做了标识,方便说明

我想问
哪些A是分类汇总后的A,哪些A是原表的A
请用数字告诉我

另外这应该是别名作用域的问题
最好能告诉我统一有效的规则来理解别名作用域
展开
 我来答
nietiezheng
推荐于2016-05-31 · TA获得超过5536个赞
知道大有可为答主
回答量:3132
采纳率:87%
帮助的人:1225万
展开全部
A2,A4为原来的,其余是分类汇总的

作用域的分别主要是知道语句中子查询的执行顺序,如果到了外层查询进行重命名了,那么内层的就没有用了。
追问
劳烦解释下 为什么A4不是分类汇总表呢 在之前的子查询中不是进行了重命名么
追答
A4是通过inner join 和前面进行连接的,在执行顺序上和前面的分类汇总是并列的,相当于查询计划的另一个分支上的独立子查询,因此和A2没有关系
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式