- ベストアンサー
SQLの式の再利用方法についての疑問
- SQLで定義した項目を別の式で再利用したい場合、Microsoft Accessでは可能ですが、SQL Serverではエラーになります。その場で再度書く方法もありますが、釈然としません。
- SQL Serverで式を再利用する記述を行うとエラーが発生します。この問題を解決する方法を探しています。現状では、式をその場で再度書く方法がありますが、他に良い解決策が知りたいです。
- AccessではSQLで作成した項目を再利用できますが、SQL Serverでは同様に行うとエラーになります。式を再度書けば回避できますが、このような状況での最良の方法を知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
WITHを使った方がすっきりするかも。 ---- WITH TB AS ( SELECT TB1.Item1, (TB1.Item2 * 2) AS Item2x, (TB1.Item3 * 3) AS Item3x FROM TB1 ) SELECT Item1, Item2x, Item3x, (Item2x + Item3x) AS Item4 FROM TB; ----
その他の回答 (2)
- dell_OK
- ベストアンサー率13% (766/5720)
そうですね。 私は間違えたり修正が大変になるので同じ式を何度も書きたくない時はこんな風にしています。 ---- SELECT Item1, Item2x, Item3x, (Item2x + Item3x) AS Item4 FROM ( SELECT TB1.Item1, (TB1.Item2 * 2) AS Item2x, (TB1.Item3 * 3) AS Item3x FROM TB1 ) AS TB; ----
お礼
補足
単純で単発であればコレでやります SELECT TB1.Item1 , (TB1.Item2 * 2) as Item2x , (TB1.Item3 * 3) as Item3x , ((TB1.Item2 * 2) + (TB1.Item3 * 3)) as Item4 FROM TB1 ; 複雑で単発であればコレでやります SELECT Item1, Item2x, Item3x, (Item2x + Item3x) AS Item4 FROM ( SELECT TB1.Item1, (TB1.Item2 * 2) AS Item2x, (TB1.Item3 * 3) AS Item3x FROM TB1 ) AS TB; もっと複雑であったり、再登場の可能性があれば、一旦、Viewを作ります。 でも、Accessみたいにその場で使えたら便利だな、なんかもっといい方法ないのかな、なんて思ったので質問してみました。
お礼