2016-04-24 11 views
2

SQL 2008でサブクエリを使用せずに列エイリアスを選択することはできますか?サブクエリなしのSQL列選択エイリアス

*****私がやりたいものを:******

Select col1*col2 as NewColumn, NewColumn*col3 from table 

私はエラーが出るのに、私はこれを試してみてください

Invalid column name 'NewColumn'

を*** *私が代わりに今やっている何*****

Select Newcolumn*col3 from (Select col1*col2, col3 from mytable) Q1 

は、私は多くのテーブルを結合していて、可能な限りサブクエリを回避し、クエリを読みやすくしたいしたいと思います。

おそらくこれを行うにはさらに良い方法がありますか?

ありがとうございます。

+1

サブクエリまたはCTEを使用します。 –

答えて

1

サブクエリまたはCTEを使用できます。 。 。あなたが本当にしたい場合や、outer apply

select x.NewColumn, x.NewColumn * col3 
from . . . cross apply 
    (select col1*col2 as NewColumn) x; 
+1

タイトルが示唆しているように、サブクエリを避けたいのです...どのようにCTEを使用しますか? – Rdisnic

+0

@Rdisnic。 。 。サブクエリを避け、クエリを読み取り可能にすることです。 'FROM'節にもう一つの式を追加することは、追加レベルの入れ子と同じではありません。 –

0

は、なぜあなたは、これが役立ちます

Select col1*col2 as NewColumn, col1*col2*col3 as NewColumn2 from table 

希望は、これを試してみてください、あなたは簡単にこれを行うことができたときに、これは複雑な

を作っています。

関連する問題