Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защита на базата данни на Oracle – криптиране и декриптиране

  2. Как да използвам GROUP BY на CLOB колона с Oracle?

  3. Oracle SQL вмъкване в with With клауза

  4. Oracle към Derby - ConnectBy и започнете с еквивалент в Derby

  5. Как да проверите стойностите на NLS параметрите в базата данни на Oracle