0

SQL Server 2012 を使用しており、次のことを行うビューを作成したいと考えています。

私のテーブルには次のものがあります:

MovType | Qty
In      | 200
Out     | 10

ここで、基本的にテーブル全体を通過し、特別な動的列に割り当てられているMovTypeInどうかに応じて、ビューを作成したいと考えています。Out

だから基本的に私は必要です:

InQty | OutQty
200   | 0
  0   | 10

これは で実行できることは知っていますがCASE、コードはわかりません。第二に、速度は重要な要素です。可能な限り最小限のオーバーヘッドでこれを行う特定の方法はありますか?

事前にすべてに感謝します!

4

1 に答える 1

0

はい、使用できますCASE。効率的です。case ステートメントは、 のようにディスクから読み取る必要はありませんJOIN。これは、パフォーマンスの問題を引き起こす可能性が低い非常に単純なコマンドです。

SELECT CASE WHEN MovType='In' THEN Qty Else 0 End AS InQty,
       CASE WHEN MovType='Out' THEN Qty Else 0 End AS OutQty
FROM dbo.Table1

http://sqlfiddle.com/#!6/d507f/3/0

于 2013-04-18T20:02:36.787 に答える