SQL语句中的别名为什么不能用啊

来源:百度知道 编辑:UC知道 时间:2024/05/25 08:39:46
select 1 as a,2 as b ,a+b from dual;在这个句子中,如果没有"a+b"就能用,加上"a+b"后提示 b 是无效的标示符!是不是别名不能再进行运算,也不能用在where 语句中的条件中

这样分析一下吧,当你select 1 as a,2 as b from dual的时候,a和b都是表示你的列别名!所以如果你在
后面再加上a+b这是没有意义的,因为这里的a和b都只是一个标识符,他读不出1和2的

select a+b from (select 1 as a,b as b from dual ) as temp;

中a和b就可以输出3,因为你括号里面的返回的是这样的:

a b

1 2
1 2
1 2

这样你就明白了吧,还要提醒一点是select语句放在from后,要加别名的,不然会出错

要求和的话要用函数:sum(a+b).

SELECT A+B FROM (SELECT 1 as a,2 B FROM DUAL);