sql >> Database teknologi >  >> RDS >> Oracle

Oracle 11 SQL :Opdel 1 række i x rækker og indsæt en ny kolonne

Du kan bruge unpivot-klausul. Jeg tror, ​​at denne kode vil hjælpe dig:

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') 
);

Efter opdateringen af ​​spørgsmålet. Svaret er ændret til dette:

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. har brug for hjælp til at tilføje kolonne til en tabel ved hjælp af funktion, der udfører aritmetiske operationer mellem kolonner fra to separate tabeller

  2. Opret Trigger for at slette rækker, der er>90 dage gamle

  3. Forskel i tid mellem poster

  4. kunne ikke finde driverfejl ved brug af PDO med MSSQL-server