sql >> データベース >  >> RDS >> Oracle

Oracle 11 SQL:1行をx行に分割し、新しい列を挿入します

    unpivot句を使用できます。このコードはあなたに役立つと思います:

    select a,b,c,'Name for ' || name_code || ' : '|| name_code as value  from 
    (select 'A' a ,'B' b ,'C' c ,'D' d,'E' e,'F' f,'G' g,'H' h,'I' i from dual) 
    unpivot include nulls 
    (
    name_for for name_code in (d as 'D', e as 'E' ,f as 'F',g as 'G',h  as 'H',i as 'I') 
    );
    

    質問の更新後。答えは次のように変更されます:

    select A,B,C,'Name for ' || name_for  as value, name_code  from 
    (select 1 A,2 B,3 C,'Lennon' D,'Paul McCartney' E, 'Ringo Starr' F, 
                  null G, 'Pete Best'H, 'Tommy Moore'  I from dual )
    unpivot include nulls 
    (
    name_for for name_code in (d,e,f,g,h,i) 
    )
    


    1. 最大限のデータ保護のための完全なMariaDB暗号化の保管中および転送中-パート2-

    2. データベースでPIIを分類、検索、マスクする方法…

    3. T-SQLでテーブルをスキーマに移動するにはどうすればよいですか

    4. SQL Serverデータベース(T-SQL)にログファイルを追加する方法