私は、Oracleの列にこれらの行を旋回させるための方法はありますか?

va9999:

私は、添付画像のように見えるデータベーステーブルを持っています

ここでは、画像の説明を入力し 、これを照会しBookID、Genre1の形式で出力を表示することができるようにするI必要性、Genre2、Genre3

私はMAX機能の/使用を旋回させる上でいくつかの以前の記事を読んだことがあるが、私はまだ苦労しています、私はこれに新しいです。

ゴードン・リノフ:

あなたは使用することができますrow_number()し、条件付き集約:

select bookId,
       max(case when seqnum = 1 then genre end) as genre_1,
       max(case when seqnum = 2 then genre end) as genre_2,
       max(case when seqnum = 3 then genre end) as genre_3
from (select bg.*, 
             row_number() over (partition by bookId order by genre) as seqnum
      from bookGenres
     ) bg
group by bookId;

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=34031&siteId=1