Say*_*jee 1 mysql sql sql-server
我有一个表结构:
ID |类型|值
1电子邮件abcd@xyz.com
1电话12345
2电话56789
2工作电话 546789
我想把它变成
ID |电子邮件|电话|工作电话
1 abcd@xyz.com 12345空
2空56789 546789
谁能帮我解决这个问题。抱歉,如果您之前已经重复过此问题。
使用条件聚合:
select
id
, max(case when type = 'email' then value end) as email
, max(case when type = 'phone' then value end) as phone
, max(case when type = 'workphone' then value end) as workphone
from t
group by id
Run Code Online (Sandbox Code Playgroud)
或pivot()(在sql-server中):
select id, email, phone, workphone
from t
pivot (max(value) for type in ([email],[phone],[workphone])) p
Run Code Online (Sandbox Code Playgroud)
extrester演示:http://rextester.com/UGT52844
都返回:
+----+--------------+-------+-----------+
| id | email | phone | workphone |
+----+--------------+-------+-----------+
| 1 | abcd@xyz.com | 12345 | NULL |
| 2 | NULL | 56789 | 546789 |
+----+--------------+-------+-----------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |