1. 程式人生 > >sql別名何時使用

sql別名何時使用

http://www.newxing.com/Tech/Database/MSSQL/91.html------------------同意

http://hi.baidu.com/hellofrancis/item/1db89f0a2673f1036d904805-----這個說法好像不對

別名的有效性也是遵循sql執行順序的,你不能在執行別名命名語句之前就使用它。

例如下面的SQL語句: 

select id, (c1 + c2) as s
from t1
where s > 100 
  SQL Server 報錯: "列名 s 無效"
當然,寫成 
select id, (c1 + c2) as
s from t1 where (c1 + c2) > 100

 就沒問題了.

 
  可是當表示式複雜時就很繁瑣了.
 
  有沒有可以在Where中使用這樣的列名的辦法?
  或者有什麼其他辦法可以解決這類問題呢? 

解決方法:

select t2.*
from (select id, (c1 + c2) as c from t1) t2
where c > 100
 
  --或者
 
select t2.*
from (select id, c = c1+c2 from t1) t2
where c > 100