ここから本文です

SQL文で、Asで指定した別名を他のカラムの指定に使いたいのですが・・・

mix********さん

2012/7/1115:17:31

SQL文で、Asで指定した別名を他のカラムの指定に使いたいのですが・・・

SQL Server 2005を使用しています。

マスタ名:
サンプルマスタ

カラム名:
数値1 数値2

数値1と数値2の和および、それに10足した値の2つを表示させたい時・・・

SELECT 数値1 + 数値2 As 和 , 和 + 10 As 和プラス10
FROM サンプルマスタ

としたら、エラーになりました。
SELECT 数値1 + 数値2 As 和 , (数値1 + 数値2) + 10 As 和プラス10
FROM サンプルマスタ

とすればできるのですが、(数値1+数値2)の部分がもっと複雑な計算式で、後から仕様が変わる可能性がある場合などありますよね。そのような時も、 (数値1+数値2)の部分は再度書かないといけないのでしょうか?

閲覧数:
30,508
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

chu********さん

2012/7/1315:45:27

同じ階層のクエリで付けた別名を、条件式で指定することはできません。

(1)サブクエリ内で別名を付けることで、外側のクエリで参照可能にする。
(2)WITH句で共通表式としてクエリを記述する

(1)の例
SELECT 和+10 As 和プラス10
FROM
(SELECT 数値1 + 数値2 As 和
FROM サンプルマスタ) AS x

(2)の例
WITH q1(和)
AS (SELECT 数値1 + 数値2 As 和 FROM サンプルマスタ)
SELECT 和+10 As 和プラス10
FROM q1

WITH句は再帰クエリでも使われますが、前方で記述した共通表式(クエリ)の結果を、次々と後続の共通表式やSELECT文などで、引き継ぎながら利用するといったことができる機能です。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

nii********さん

2012/7/1115:37:49

サブクエリーを使って、一度計算したものを
ソースにしては、いかがですか

SETECT
T.*
,T.和 + 10 As 和プラス10

FROM (

--↓↓↓サブクエリー

SELECT
*
,数値1 + 数値2 As 和
FROM サンプルマスタ

--↑↑↑サブクエリー

) AS T
;

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる