1

CTE コンストラクトでは、メイン クエリのフィールド値に基づいて、CTE 定義のフィールドとメイン クエリのフィールドの間で異なるフィールドを乗算する方法があるかどうかを知りたいですか?

たとえば、CTE コンストラクトにはフィールドWidth1Width2フィールドがあります。メインクエリにはHeight1、、Height2およびDIM_Type

ifとifからそれぞれ2 つの計算フィールドを取得することは可能Result1ですか?Result2Width1 * Height1DIM_Type = 1Width2 * Height2DIM_Type = 2

4

2 に答える 2

3
select case 
    when DIM_Type = 1 then Width1 * Height1
    else  Width2 * Height2
end CalculatedField
from cte
于 2013-09-29T01:54:14.933 に答える
1

多かれ少なかれ上記と同じことを行うフィドルを作成しました:http : //sqlfiddle.com/#!6/d24e7/10それぞれheight1とheigh2を保持する列で111と222を変更する必要があります

with propCte as (

  select 
    width1,
    width2,
    dim_type
  from 
    props

)

select
  case dim_type
    when 2 then propCte.width1 * 111
    else propCte.width2 * 222
  end as computed
from 
  propCte
于 2013-09-29T01:58:33.613 に答える