2012-01-21 6 views
2

私は次のようにデータを格納するテーブルを持っている:動的列、値、およびデータ型を使用してSQL ServerでPIVOTを実行するにはどうすればよいですか。

 
ID  ListId ModuleId RecordId NValue CValue LValue Caption RowId 
8cb5f604 c07cea6f 24cb218c _01F15T1LJ 2.00000   False Wire # 24cb218c 
c023fe9e 2dcd56fe 24cb218c _01F15T1LJ   Red  False Label 24cb218c 
4a74bd46 c07cea6f 24cb218c _01F15T1LJ 1.00000   False Wire # 24cb218d 
30cae2cf 2dcd56fe 24cb218c _01F15T1LJ   White False Label 24cb218d
私はのRowIdの日付をピボットし、その結果にこのような何かを表示する必要が

 
RowId  Wire # Label 
24cb218d 1.00000 White 
24cb218c 2.00000 Red 

を、私はどのように把握することはできませんPIVOTをこのように動作させます。

テーブル内のデータ、列数、および注文は、エンドユーザーが編集できるようにすべて開いています。  これを効率的に行うことは可能ですか?  もしそうなら、どのように。あなたは、この使用して動的TSQLを達成することができます

答えて

2

は、(SQLインジェクション攻撃を避けるためにQUOTENAMEを使用することを忘れないでください):

[The Curse and Blessings of Dynamic SQLに必須の参照]

+0

私はPIVOTに正しい列を引っ張るためにCASE WHENを使用するには?値を保持できる列は4つまでです(データ型によって異なります)。 – davids

関連する問題