Sql 怎样合并

hans214 2017-09-01 08:37:06
语句如下
select 'aaa','bb' union all
select 'ddd','dd'
结果怎样合并成 aaa+ddd, bb+dd
...全文
254 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 版主 2017-09-01
  • 打赏
  • 举报
回复
;WITH cte AS (
select 'aaa' col,'bb' col1,1 col3 union all
select 'ddd' col,'dd' col1,1 col3 union all
select 'gg' col, 'ff' col1,2 col3
)
SELECT STUFF(( SELECT  '+' + col
                FROM    cte WHERE col3=t.col3
              FOR
                XML PATH('')
              ), 1, 1, '') AS col , STUFF(( SELECT   '+' + col1
                                           FROM     cte WHERE col3=t.col3
                                         FOR
                                           XML PATH('')
                                         ), 1, 1, '') AS col1,t.col3
FROM cte as t
GROUP BY t.col3
二月十六 版主 2017-09-01
  • 打赏
  • 举报
回复
;WITH cte AS (
select 'aaa' col,'bb' col1,1 col3 union all
select 'ddd' col,'dd' col1,1 col3 union all
select 'gg' col, 'ff' col1,2 col3
)
SELECT STUFF(( SELECT '+' + col
FROM cte WHERE col3=t.col3
FOR
XML PATH('')
), 1, 1, '') AS col , STUFF(( SELECT '+' + col1
FROM cte WHERE col3=t.col3
FOR
XML PATH('')
), 1, 1, '') AS col1,t.col3
FROM (SELECT DISTINCT col3 FROM cte)t
GROUP BY t.col3


hans214 2017-09-01
  • 打赏
  • 举报
回复
col col1 col3 ------------------- aaa+ddd ,bb+dd ,1 gg ,ff ,2
二月十六 版主 2017-09-01
  • 打赏
  • 举报
回复
引用 7楼我是你的主体 的回复:
select 'aaa' col,'bb' col1,1 col3 union all select 'ddd' col,'dd' col1,1 col3 union all select 'gg' col, 'ff' col1,2 col3.................. 如果这样按col3有条件合并怎样写呢 把col3 1的合并col3 2的合并
这个测试数据的结果是什么?
hans214 2017-09-01
  • 打赏
  • 举报
回复
select 'aaa' col,'bb' col1,1 col3 union all select 'ddd' col,'dd' col1,1 col3 union all select 'gg' col, 'ff' col1,2 col3.................. 如果这样按col3有条件合并怎样写呢 把col3 1的合并col3 2的合并
二月十六 版主 2017-09-01
  • 打赏
  • 举报
回复
引用 5楼我是你的主体 的回复:
有没有函数一步到位的
没有。 可以把select 语句自己写成一个函数调用。
hans214 2017-09-01
  • 打赏
  • 举报
回复
有没有函数一步到位的
OwenZeng_DBA 2017-09-01
  • 打赏
  • 举报
回复
二月十六 版主 2017-09-01
  • 打赏
  • 举报
回复
;WITH cte AS (
select 'aaa' AS col1,'bb' AS col2 union all
select 'ddd','dd'
)
SELECT STUFF(( SELECT '+' + col1
FROM cte
FOR
XML PATH('')
), 1, 1, '') + ',' + STUFF(( SELECT '+' + col2
FROM cte
FOR
XML PATH('')
), 1, 1, '') AS col



  • 打赏
  • 举报
回复

SELECT ID,
STUFF((SELECT '+'+PAR1 FROM A K1 WHERE KK.ID=K1.ID FOR XML PATH('')),1,1,'') AS UU1,
STUFF((SELECT '+'+PAR2 FROM A K1 WHERE KK.ID=K1.ID FOR XML PATH('')),1,1,'') AS UU2 FROM  A KK
GROP BY ID
OwenZeng_DBA 2017-09-01
  • 打赏
  • 举报
回复
直接select aaa+bbb union select ccc+ddd就可以

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧