次のようなテーブルがあります。
私はこのようなものを手に入れるのが好きです:
「Property」で始まる行は、Property 列に移動します。「Location」で始まる行は「Location」列に移動し、「error」で始まる行は「ErrorMessage」列に移動します。ここのテーブルには、親子のようなデータが含まれています。たとえば、プロパティ X の場所は「abc」で、2 つのエラー「1234」と「5678」があります。
これまでのコメントに基づいて、さらに情報を追加します。
Aaron Bertrand の質問: Q1.ROWID がシーケンシャルであることを完全に信頼できますか?
A1.Rowidは順次増加していますが、常に1の順であるとは限りません。
例を見てみましょう。プロパティ X は rowid = 1 から始まり、プロパティ Y は 8 から始まります。プロパティ X のすべては、rowid 1 から 7 の間にあります。別のレベルに進むと、場所 abc は 2 から始まり、「def」は 5 から始まります。場所「abc」のすべてのエラー' は、rowid 3 から 4 の間になります。
Q2. また、場所とプロパティの組み合わせに対して、データ セットは 1 つしかありませんか? または、行 15 が再度プロパティ X であり、行 16 がプロパティ abc であるなどの可能性はありますか?
A2. プロパティと場所の組み合わせのデータ セットは 1 つだけです。したがって、Property X - Location abc が行 2 にある場合、後でテーブルに表示されることはありません。
詳細: ここの例では、限られた量の行しかありません。実際のテーブルには、これよりもはるかに多くの行があります。
これまでのところ、WHILE ループを使用して結果を得ることができました。行ごとに実行せずにこれを行う別の方法があるかどうか疑問に思っています。SQL 2008 R2 を使用しています。