2010-11-30 8 views
1

Ich habe eine Tabelle, die wie folgt aussieht:Transponierung der Tabellenzeilen Spalte

id response_id  name  value 
6 13   gender   female 
5 13   workingArea Sch 
3 12   workingArea IT 
4 12   gender   male 

und ich möchte konvertieren in etwa so aus: Das

response_id   workingArea gender 
12    IT   male 
13    Sch   female 

Darf ich wissen, wie zu tun?

Antwort

3

Angenommen, Ihre erste Tabelle ist Source und Ihre zweite Tabelle ist Zieltabellen

INSERT INTO TARGETTABLE(response_id, workingArea, gender) 
SELECT a.response_id response_id, 
     a.value workingArea, 
     b.value gender 
    FROM SOURCETABLE a, SOURCETABLE b 
WHERE a.response_id = b.response_id 
    AND a.name <> b.name 
    AND a.name = 'workingArea' 
    AND b.name = 'gender' 
+0

Nizza Lösung. Übrigens war gender und workingArea ein falscher austausch. – neobie

+0

Bedeutet es, dass ich SOURCETABLE c, d, e usw. hinzufügen muss, die proportional zu den Feldern sind, die ich hinzufügte? – neobie

+0

Ja, ich denke schon. Hoffe, du hattest nicht zu viele Felder. – TechTravelThink