sql >> データベース >  >> RDS >> Sqlserver

同じ選択で計算式を複数回繰り返さないようにするにはどうすればよいですか?

    相互適用を使用できます

    SELECT T2.[ADD],
           T2.[ADD]*2,
           T2.[ADD]/2
    FROM @T AS T1
      CROSS APPLY (SELECT T1.NUM1+T1.NUM2) AS T2([ADD])
    

    またはCTE

    WITH C AS
    (
      SELECT NUM1+NUM2 AS [ADD]
      FROM @T
    )
    SELECT [ADD],
           [ADD]*2,
           [ADD]/2
    FROM C
    

    またはサブクエリ (派生テーブルとも呼ばれます)

    SELECT T.[ADD],
           T.[ADD]*2,
           T.[ADD]/2
    FROM (
           SELECT NUM1+NUM2 AS [ADD]
           FROM @T
         ) AS T
    

    宣言されているのと同じフィールド リストで列エイリアスを使用することはできません。



    1. MySqlビューのパフォーマンス

    2. 異なる列のMySqlSELECTユニオン?

    3. オラクルで変化トリガーを修正する方法

    4. mysqlは単一のクエリ内に複数の挿入をアトミックにしていますか?