首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一列中组合来自同一列的不同值?

问如何在一列中组合来自同一列的不同值?
EN

Stack Overflow用户
提问于 2017-05-29 08:05:29
回答 2查看 625关注 0票数 1

我想创建这个表并在我的报告中使用它。

我有一张这样的桌子:

代码语言:javascript
复制
--------------------------------------
sum          commodity           unit 
--------------------------------------
100           a4 paper           x
200           a5 paper           y
  7           a4 paper           z
410           pencil             e
300           a5 paper           w

如何从上面的表中创建这样的表?

代码语言:javascript
复制
--------------------------------------
sum          commodity           unit 
--------------------------------------
107           a4 paper           x-z
500           a5 paper           y-w
410           pencil             e
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-29 08:18:43

如果使用SQL server的意思,请使用下面的查询

代码语言:javascript
复制
CREATE TABLE table2(sums INT, commodity VARCHAR(100),unit VARCHAR(2))

INSERT INTO table2(sums , commodity ,unit)
SELECT 100,'a4 paper','x' UNION ALL
SELECT 200,'a5 paper','y' UNION ALL
SELECT 7,'a4 paper','z' UNION ALL
SELECT 410,'pencil','e' UNION ALL
SELECT 300,'a5 paper','w' 

 SELECT SUM(sums) , commodity , STUFF( (SELECT '-' + unit FROM table2 I 
 WHERE I.commodity = O.commodity FOR XML PATH('')),1,1,'') unit
 FROM table2 O
 GROUP BY commodity
票数 2
EN

Stack Overflow用户

发布于 2017-05-29 08:15:10

由于您没有提到您的RDBMS,您可以使用这样的方法

代码语言:javascript
复制
select sum(sum),
commodity,
group_concat(unit SEPARATOR '-') from commo2 t
group by commodity;

GROUP_CONCAT在MYSQL上工作。您可以在关系数据库管理系统中搜索替代的group_concat,就像在Oracle中可以使用LISTAGG一样。但逻辑是一样的

MYSQL演示

http://rextester.com/ZXZA16316

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44237462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档