合并列值
--*******************************************************************************************
表结构,数据如下:
id    value
----- ------
   aa bb aaa bbb ccc 需要得到结果:
id    values
------ -----------
     aa,bb aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加) 1. 旧的解决方法(在sql server 2000中只能用函数解决。)
--=============================================================================
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
--1. 创建处理函数
CREATE FUNCTION dbo.f_strUnite(@id int)
RETURNS varchar(8000)
AS
BEGIN DECLARE @str varchar(8000) SET @str = '' SELECT @str = @str + ',' + value FROM tb WHERE id=@id RETURN STUFF(@str, 1, 1, '')
END
GO
-- 调用函数
SELECt id, value = dbo.f_strUnite(id) FROM tb GROUP BY id
drop table tb
drop function dbo.f_strUnite
go
/*
id          value
----------- ----------- aa,bb aaa,bbb,ccc
(所影响的行数为 2 行)
*/
--===================================================================================
2. 新的解决方法(在sql server 2005中用OUTER APPLY等解决。)
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
-- 查询处理
SELECT * FROM(SELECT DISTINCT id FROM tb)A OUTER APPLY( SELECT [values]= STUFF(REPLACE(REPLACE( ( SELECT value FROM tb N WHERE id = A.id FOR XML AUTO ), ' <N value="', ','), '"/>', ''), 1, 1, '')
)N
drop table tb /*
id          values
----------- ----------- aa,bb aaa,bbb,ccc (2 行受影响)
*/ --SQL2005中的方法2
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go select id, [values]=stuff((select ','+[value] from tb t where id=tb.id for xml path('')), 1, 1, '')
from tb
group by id /*
id          values
----------- -------------------- aa,bb aaa,bbb,ccc (2 row(s) affected) */

demo:

selectBeginCity,EndCity,FanDian,[CangWei]=stuff((select '/'+[CangWei] from test1 t  where t.BeginCity=Test1.BeginCity  and t.EndCity=Test1.EndCity  and t.FanDian=Test1.FanDian   for xml path('')), 1, 1, '')
from
Test1
group by
BeginCity,EndCity,FanDian

参考:  http://bbs.csdn.net/topics/330188225

http://bbs.csdn.net/topics/330182340

https://www.cnblogs.com/qixuejia/p/4241932.html

转载于:https://www.cnblogs.com/GarsonZhang/p/10462933.html

SQL查询语句 group by后, 字符串合并相关推荐

  1. SQL查询语句大全(转)

    转自https://www.cnblogs.com/chenglc/p/8421492.html 重点参考https://blog.csdn.net/g1418377085/article/detai ...

  2. (转)经典SQL查询语句大全

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  3. orcal SQL查询语句大全集锦

    orcal   SQL查询语句大全集锦 一. 简单查询   简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例 ...

  4. Mysql常规27种sql查询语句

    Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...

  5. SQL查询语句 select 详解

    查询select: 1.单表查询 2.多表查询 3.嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询*************************** ...

  6. SQL查询语句 select

    查询select: 1.单表查询 2.多表查询 3.嵌套查询 分类       1)单表查询       2)多表查询           A.连接查询           B.子查询         ...

  7. sql查询语句 -牛客学习笔记

    sql查询语句 1. limit 使用LIMIT限制结果集 LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数. LIMIT 接受一个或两个数字参数.参数必须是一个整数常量. 如果只给 ...

  8. 「MySQL」- 复杂的SQL查询语句

    任意门 前言 聚合查询 1.聚合函数 count函数 sum函数 avg函数 max函数 min函数 2.分组查询 having子句 多表查询 1.笛卡尔积 2.内连接 3.外连接 左外连接 右外连接 ...

  9. [数据库] SQL查询语句表行列转换及一行数据转换成两列

    本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同 ...

最新文章

  1. linux filesystem_如何使用cgdb + qemu调试linux内核模块
  2. android中AndroidManifest.xml 的解析 (转)
  3. Redundant Connection (684)
  4. 8、jeecg 笔记之 自定义word 模板导出(一)
  5. Levko and Permutation CodeForces - 361B 思维 数论
  6. 剑指offer25-合并两个排序的链表
  7. linux gdb检查函数栈,Linux - gdb调试
  8. 调用方法try起来的好处_Java:一个重要的停止线程方法——interrupt
  9. LeetCode 84. Largest Rectangle in Histogram
  10. 2017年杭州java面试题_2017年Java面试题整理
  11. eclipse后台提示computing additional info的解决办法
  12. SiamRPN++论文阅读
  13. 这下爽了,居然有人通过这个把Linux的命令提示符给整明白了
  14. 手机电脑怎么上P站-国内版pixiv你可知晓
  15. 济南市公安局人口数据备份库项目(数据复制)之二
  16. 数据库之MySQL日志管理、备份与恢复
  17. 使用python统计excel两文件数据,excel公式为countif
  18. 如何解决仓库无线网络覆盖问题?
  19. Typora远程解绑设备的方法
  20. 25【中介者设计模式】

热门文章

  1. qt中设置QTabWidget,QGroupBox,QScrollArea的样式
  2. 扇区 修复 linux,linux – 如何使用hdparm来修复挂起的扇区?
  3. 攻击linux的samba,Samba 中间人攻击漏洞(CVE-2015-5296)
  4. java语言怎么建立窗口awt,java.awt.Frame类:创建窗口
  5. MySql和Oracle数据库的区别?
  6. 手机版数据库oracle,用手机管理及维护MySQL,Oracle等数据库
  7. pyquery获取不到网页完整源代码_python动态网页爬取:爬取pexel上的图片
  8. keil流水灯c语言程序两个一起亮,我用keil c51编了一个流水灯程序,编译无误却只有第一和第二个灯亮了,最后停在第一个灯处不动...
  9. 添加一列_办公软件操作技巧023:如何给excel数据批量添加单位
  10. mysql 全局不重复_php uniqid() 通过MYSQL实现全局不重复的唯一ID