を変更したときに、以下のDDLをご覧下さい奇数として行番号を開始:レコードをグループ化し、パーティションが
create table Test (RevObjId int, LegalPartyId int, IsPrimary int)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (10, 20, 0)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (10, 21, 0)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (10, 22, 1)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (11, 20, 1)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (11, 21, 0)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (12, 30, 1)
insert into Test (RevObjId, LegalPartyId, IsPrimary) values (13, 40, 0)
を、私は以下の出力を探しています:私は次のクエリを使用する場合
RevObjId LegalPartyId IsPrimary RowNumber
10 22 1 1
10 20 0 2
10 21 0 3
11 20 1 5
11 21 0 6
12 30 1 7
13 40 0 9
:
select RevObjId,
LegalPartyId,
IsPrimary,
row_number() over(partition by RevObjId order by RevObjId asc,IsPrimary desc,LegalPartyId asc) as RowNumber
from test;
私は順番に行番号を取得し、各行は1ずつ増加し、行番号はリセットされます。パーティションが変更された後パーティション(RevObjIdによる)が変更されたときに、行番号を次の奇数に変更するにはどうすればよいですか? は、ここで私は、次の形式でレポートを生成する必要があるので、私たちは、行番号の間のギャップを必要とする私のSQLフィドル http://sqlfiddle.com/#!6/01d5c/22
私が求めていたサポート質問です: How to convert every other row to column in T-SQL?
ギャップの背後にある論理は何ですか?新しいRevObjIdが見つかると、行番号は偶数の場合は奇数に切り上げる必要がありますか?そして、どのバージョンのSQL Server? –
@MartinSmith:私は自分の質問を更新しました。 –
@RadimBača:いいえ正しいですが、RevObjIdが変更された場合、次の奇数に変更するにはrownumberが必要です。申し訳ありませんが十分に明確ではありません。 –