我是新来的。我的情况是我有一个表,我存储我的数据。数据以一行的形式来自一个文件,并以5行的形式保存在数据库中。我要做的是做一个SELECT语句,它将把5行合并成一行。
例如

id  id2  id3  year  code   value
4   1    1    1642  radio  30
4   1    1    1642  tv     56
4   1    1    1642  cable  67
4   1    1    1642  dine   70

我想要一个查询,它将返回以下内容:
id  id2  id3  year  radio  tv  cable dine
4   1    1    1642  30     56  67   70

代码的值正在变成具有实际值的列。
这可能吗?

最佳答案

你可以使用(SQL Fiddle):

SELECT m.id, m.id2, m.id3, m.year,
  SUM(CASE WHEN m.code = 'radio' THEN m.value END) as radio,
  SUM(CASE WHEN m.code = 'tv' THEN m.value END) as tv,
  SUM(CASE WHEN m.code = 'cable' THEN m.value END) as cable,
  SUM(CASE WHEN m.code = 'dine' THEN m.value END) as dine
FROM MyTable m
GROUP BY m.id, m.id2, m.id3, m.year

10-04 17:42