日期:2014-05-19  浏览次数:20448 次

能否引用前面出现过的自定义列名
field1,field1是table1中的字段名
这样的语句总报错:列名   'A '   无效
select   field1+field2   as   A,A*2   as   B,B*3   as   C,C*4   from   table1

我想引用前面出现过的计算列,能不能实现?如何实现?
不希望这样实现
select   field1+field2   ,(field1+field2)*2,((field1+field2)*2)*3   ...   from   table1

谢谢。

------解决方案--------------------
沒辦法,SQL中計算列不能直接拿來用。

或者你這麼寫

Select *, B *3 As C From (Select A, A * 2 As B From (select field1+field2 as A from table1) A) B
------解决方案--------------------
這個方法還不如你上面的那種寫法
------解决方案--------------------
没有办法。


用楼上说的子查询。


------解决方案--------------------
不行的,MS SQL中計算列不能拿來直接用的。
------解决方案--------------------
SQL Server现在还无法做到这么智能的解析你定义的别名。