2012-02-10 6 views
0

共通テーブル式のクエリで定義された一時的な列にアクセスできますか?そのようなCTEを照会するときに、一時的な列FourTimesSalaryを使用する方法があります私はT-SQL:共通テーブル式の一時列へのアクセス

select * from myTable 

;with cte as 
(
    select 
     *, Salary * 4 as FourTimesSalary 
    from 
     Employees 
    where 
     Name = @name 
     and ID >= 100 
) 

を持っていると言いますか?

select top 2 * 
from cte 
order by FourTimesSalary, Name 

TIA。

答えて

1

はい、これを行うことができます。例:

with temp as 
(
    select 1 as id, 2*4 as val 
    UNION 
    select 2 as id, 3*4 as val 
) 
SELECT * FROM temp ORDER BY VAL desc 

あなたの例はうまく見えますが、試したときにエラーが発生しましたか?

+0

はい、エラーは、列名FourTimesSalaryが定義されていないことを示しています。それは私の質問文の中で問題であることが判明しました。 –