【发布时间】:2013-08-14 07:08:29
【问题描述】:
我有一张包含一些术语的表格。这些术语有多种语言。例如:
SELECT *
FROM Terminology
结果
ID language text create_date
1 DE TextDE 2011-03-03 14:31:28.423
1 EN TextEN 2011-04-03 14:32:27.423
1 ES TextES 2011-05-03 14:33:26.423
1 FR TextFR 2011-06-03 14:34:25.423
1 NL TextNL 2011-07-03 14:35:24.423
1 PT TextPT 2011-08-03 14:36:23.423
2 DE ...
...
但我需要以下形式的数据:
ID DE EN ES FR NL PT
1 TextDE TextEN TextES TextFR TEXTNL TextPT
2 ...
ID 和 language 正在构建主键。语言的数量是可变的,因此不可能只添加 6 个额外的列。
是否有可能通过普通的 SQL 查询来完成这项工作,还是我必须在我的程序中对其进行排序?
编辑:
表中的一列未选中,但具有不同的值,我得到几行。
所以就像在有 6 个不同日期的示例中一样,我得到 6 个不同的行:
ID DE EN ES FR NL PT
1 TextDE NULL NULL NULL NULL NULL
1 NULL TextEN NULL NULL NULL NULL
1 NULL NULL TextES NULL NULL NULL
1 NULL NULL NULL TextFr NULL NULL NULL
...
我能不能把它变成一行?
【问题讨论】:
-
好像需要MySql group_concat函数stackoverflow.com/questions/451415/…
-
你应该使用数据透视表
标签: sql sql-server sql-server-2008-r2