2016-07-07 5 views
1

かなり基本的ですが、私は現時点で固まっています。あなたの助けのためにSQL Select - 列内の行を変換する

 
book  | price | stock 
----------------------------- 
Moby Dick | high | few 
Hamlet  | low | many 
Faust  | medium | normal 

ありがとう:

 
book  | info | value 
----------------------------- 
Moby Dick | price | high 
Moby Dick | stock | few 
Hamlet  | price | low 
Hamlet  | stock | many 
Faust  | price | medium 
Faust  | stock | normal 

結果のテーブル:Informixデータベース(なしピボットオプション)で

、私はSQLを使用して、次の表を変換するための動的な方法を探しています!

答えて

1

CASEの式をブックごとにグループ化して集計できます。このようなことを試してみてください。

SELECT book, 
MAX(CASE WHEN info = 'price' THEN value END) as price, 
MAX(CASE WHEN info = 'stock' THEN value END) as stock 
FROM table1 
GROUP BY book 
+0

私の価値は実際には文字列です。悪い例、私はそれを変更します。 – LordGhettofaust

+0

その場合は 'MAX'を使用してください – ughai

+0

素晴らしい!それはうまくいった。有難うございます... – LordGhettofaust