2010-11-30 35 views
1

我有一个表,看起来像这样:TRANSPOSE(移调)表行

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

,我想转换为这样的事情:

response_id   workingArea gender 
12    IT   male 
13    Sch   female 

我可能知道如何做到这一点?

回答

3

假设你的第一个表是sourceTable会和你的第二个表是TARGETTABLE

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

很好的解决方案。顺便说明性别和工作区域是错误的交流。 – neobie 2010-11-30 05:40:29