SQL语句as后,怎么直接使用这个列?
SQL code
第一种: select ISNULL(列1,0)as A, (列B+A) as B from 表 第二种: select ISNULL(列1,0)as A, (列B+ISNULL(列1,0)) as B from 表 第一种,好像是不行的。。 第二种才可以的.... 我想问下: 第二种又把 isnull(列1,0) 执行一下了呢.. 我实际的SQL 还要乘除,等操作的.... 有没有办法,,像第一种的写法?! 可以 直接用 A 呢?!!
作者: feiazifeiazi 发布时间: 2011-06-10
SQL SERVER 中不能使用当前级别的别名
可以嵌套:
SQL code
可以嵌套:
SQL code
select A,A+列B as B from (select ISNULL(列1,0)as A,列B from 表 ) aa
作者: maco_wang 发布时间: 2011-06-10
SQL code
你要看看 select 的执行顺序,as A 取了别名后不能同级马上用, 不过 order by A 却可以,因为 order 的执行顺序 是 在 select 取别名之后
作者: abcjun188 发布时间: 2011-06-10
那就声明个参数@A
作者: chuanzhang5687 发布时间: 2011-06-10
SQL code
declare @A; select @A= ISNULL(列1,0), (列B+ISNULL(列1,0)) as B from 表
作者: chuanzhang5687 发布时间: 2011-06-10
忘了给@A加类型了
作者: chuanzhang5687 发布时间: 2011-06-10