当前位置: 代码迷 >> Sql Server >> 多个视图加别名,如何和单个视图不一样?
  详细解决方案

多个视图加别名,如何和单个视图不一样?

热度:59   发布时间:2016-04-24 09:29:58.0
多个视图加别名,怎么和单个视图不一样???
select  sum_c=b.dep_id from lins1 a,lins b
lins 和lins1都是视图,但是为什么我加了视图别名,反而不正确了呢?
select  a.sum_c=b.dep_id from lins1 a,lins b
消息 102,级别 15,状态 1,第 1 行
'=' 附近有语法错误。
这个是什么原因呢?
------解决思路----------------------
感觉问题好多~~

select  sum_c=b.dep_id from lins1 a,lins b
这个你是想获取什么呢?
这句话你这么写了之后,意思就成了,查询b表(也就是lins表)的列dep_id,并命名为别名sum_c
我猜你应该是要,获取这两个表在a.sum_c=b.dep_id时的数据吧
如果是应该是这样
select  * from lins1 a,lins b WHERE a.sum_c=b.dep_id

------------------------------------
select  a.sum_c=b.dep_id from lins1 a,lins b
带点的字符要作为别名需要加[]处理下
其余问题同上
------解决思路----------------------
科普一下,
1.视图别名是指写在视图名之后的别名,如以下SQL的红色字体部分.
 select  sum_c=b.dep_id from lins1 a,lins b

2.字段别名是指写在查询返回字段名之前或之后的别名,如以下2种写法,其作用是一样的.
 select  sum_c=b.dep_id from lins1 a,lins b
 select  b.dep_id as 'sum_c' from lins1 a,lins b

至于LZ的SQL: select  a.sum_c=b.dep_id from lins1 a,lins b
可改写为 select  b.dep_id as 'a.sum_c' from lins1 a,lins b
  相关解决方案