メインテーブルに含まれていないデータを "補充する"ことができる場合は、ピボット機能を使用しています。アンバランスデータを使用したSQLピボット
objID col1 col2 col3
21 a value col2_2_x col3_1
22 another value col2_2 col3_2
は、私が好きなもの:ピボット機能
select
*
from (
select
objID
, colID
, value
from tmpData)
t
PIVOT (MAX(value) for colID in ([col1], [col2], [col3])) pivottable;
私はCOL2でのObjID = 21 1つだけ(最大)値を取得して
create table tmpData (objID INT, colID varchar(5), value varchar(50));
insert into tmpData (objId, colId, value) values(21, 'col1', 'a value');
insert into tmpData (objId, colId, value) values(21, 'col2', 'col2_1');
insert into tmpData (objId, colId, value) values(21, 'col2', 'col2_2_x'); -- a second 'value' for col_2
insert into tmpData (objId, colId, value) values(21, 'col3', 'col3_1');
insert into tmpData (objId, colId, value) values(22, 'col1', 'another value');
insert into tmpData (objId, colId, value) values(22, 'col2', 'col2_2');
insert into tmpData (objId, colId, value) values(22, 'col3', 'col3_2');
: 私のテーブルには、これらのデータを含んでいます取得するすべての値があり、col1とcol3のobjID = 21の指定されていないデータを入力します。
objID col1 col2 col3
21 a value col2_2 col3_1
21 a value col2_2_x col3_1
22 another value col2_2 col3_2
これはPivot機能や他の方法で可能ですか? 事前に感謝します Joerg
あなたが使用しているDBMSのためのより多くの価値を持っている場合、これはまた、動作するためにcol1とcol3というの値を取得するために参加しますか?構文はSQL Serverのように見えます。最後に –
はSQL ServerとORACLEのために働く必要があります – DickerXXL