见下表1
id category city value
100 A x 10
100 A y 20
100 B x 1000
101 A x 100
101 C x 2
102 B x 3
我们想把城市类别的值转换成列,即。
id A_x A_y B_x B_y C_x
100 10 20 1000 NULL NULL
101 100 NULL NULL NULL 2
102 NULL NULL 3 NULL NULL
这个线程中提到的“max(case-when…)”方法不能很好地工作。比方说,即使我们只有100个不同的类别值和10个不同的城市值,类别城市的组合也将是1000。我们需要手工写1000行“case(when…)as category\u city”。这太难看了。
SELECT t.userid
MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
FROM TABLE t
GROUP BY t.userid
有什么好办法吗?
暂无答案!
目前还没有任何答案,快来回答吧!