にピボットを使用することの私は、このテーブルがあるとしましょう:TSQL
Name Occupation
Samantha Doctor
Julia Actor
Maria Actor
Meera Singer
Ashely Professor
Ketty Professor
Christeen Professor
Jane Actor
Jenny Doctor
Priya Singer
私はこの出力を持つようにしたい:
Doctor Professor Singer Actor
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
私は列に占領行を変換すると、その後で名前をリスト職業。 私はpivot
の関係演算子で試してきましたが、pivot
に渡す最初の引数は集約関数でなければならないので、このクエリを解決する最良の方法であるかどうかはわかりません。 これは、私はそれだけで一つの名前を返しますpivot
を使用しますが、もちろん、私はmax(name)
を使用しているとして取り組んできたクエリです:
doctor actor singer professor
Samantha Maria Priya Ketty
:
select * from occupations
pivot (max(name) for occupation in ([doctor],[actor],[singer],[professor]))
as pvt
これは、上記のクエリを使用して、私の出力であります
これを解決するためにpivot
関係演算子を使用できますか?どのような変更ができますか?
代わりに ''選択occupations'使用SELECT * FROMの* from(select *、row_number()over(職業順序によるパーティション(選択ヌル))職業からのrn)。あなたは、各行を区別させるために、row_numberなどを割り当てる必要があります。編集:最後の結果セットに行番号を表示したくない場合は、特定の列を選択するだけです。 – ZLK