mysqlgroupby合并字符串_SQL查询语句groupby后,字符串
合并
合并列值
--*******************************************************************************************
表结构,数据如下:
id value
----- ------
aa
bb
aaa
bbb
ccc
需要得到结果:
id values
------ -----------
aa,bb压力容器怎么分类
aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)
. 旧的解决⽅法(在sql server 2000中只能⽤函数解决。)
--=============================================================================
create table tb(id int, value varchar())
insert into tb values(, 'aa')
insert into tb values(, 'bb')
insert into tb values(, 'aaa')
insert into tb values(, 'bbb')
insert into tb values(, 'ccc')
go
--. 创建处理函数
CREATE FUNCTION dbo.f_strUnite(@id int)
RETURNS varchar()
AS
BEGIN
DECLARE @str varchar()
SET @str = ''
SELECT @str = @str + ',' + value FROM tb WHERE id=@id
RETURN STUFF(@str, , , '')
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
----------- -----------谷歌nexus3
1 aa,bb
2 aaa,bbb,ccc
(所影响的⾏数为 2 ⾏)
*/
--=================================================================================== . 新的解决⽅法(在sql server 2005中⽤OUTER APPLY等解决。)
create table tb(id int, value varchar())
insert into tb values(, 'aa')
insert into tb values(, 'bb')
insert into tb values(, 'aaa')
insert into tb values(, 'bbb')
insert into tb values(, '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
drop table tb
/*
id values
----------- -----------
1 aa,bb
2 aaa,bbb,ccc
(2 ⾏受影响)
*/
--SQL2005中的⽅法2
create table tb(id int, value varchar())
insert into tb values(, 'aa')
insert into tb values(, 'bb')
insert into tb values(, 'aaa')
c语言0的ascii码insert into tb values(, 'bbb')
insert into tb values(, 'ccc')
go
select id, [values]=stuff((select ','+[value] from tb t where id=tb.id for xml path('')), , , '') from tb
group by id
/*
id values
-
---------- --------------------
1 aa,bb
mysql面试题sql语句多表联查2 aaa,bbb,ccc
(2 row(s) affected)
*/
demo:
select
BeginCity,EndCity,FanDian,
abstract类中必须有abstract方法[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
(转)经典SQL查询语句⼤全
(转)经典SQL查询语句⼤全 ⼀.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database
dbname3.说明:备份sql s ...
经典SQL查询语句⼤全
⼀.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server---创建 备份数 ...
SQL查询语句⼤全及其理解
SQL查询语句⼤全集锦
SQL查询语句⼤全集锦 ⼀. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM⼦句和WHERE⼦句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下⾯的语句查询t ...
[数据库] SQL查询语句表⾏列转换及⼀⾏数据转换成两列
15个初学者必看的基础SQL查询语句
本⽂由码农⽹ – ⼩峰原创翻译,转载请看清⽂末的转载要求,欢迎参与我们的付费投稿计划! 本⽂将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不⼀定都会,所以好好看看吧. 1.创建表和数据插 ...
浅谈SQL优化⼊门:1、SQL查询语句的执⾏顺序
1.SQL查询语句的执⾏顺序 (7) SELECT (8) DISTINCT (1) FROM (3)
MySQL 笔记整理(2) --⽇志系统,⼀条SQL查询语句如何执⾏
笔记记录⾃林晓斌(丁奇)⽼师的 2) --⽇志系统,⼀条SQL查询语句如何执⾏ MySQL可以恢复到半个⽉内任意⼀秒的状态,它的实现和⽇志系统有关.上⼀篇中记录了⼀ ...
MySQL 笔记整理(1) --基础架构,⼀条SQL查询语句如何执⾏
最近在学习林晓斌(丁奇)⽼师的,受益匪浅,做⼀些笔记整理⼀下,帮助学习.如果有⼩伙伴感兴趣的话推荐原版课程,很不错. 1) --基础架构,⼀条SQL查询语句如何执⾏ ...
随机推荐
【转】Oracle 表空间与数据⽂件
--============================== --Oracle 表空间与数据⽂件 --============================== /* ⼀.概念表空间:是⼀个或 ...
UNIX下解压缩⽂件
⽤法⽰例以Sun Solaris (其他unix如linux.aix⼤体相同)为例
=========================================================== ...
UVA10006 - Carmichael Numbers
题⽬链接:UVA10006 本来想直接打素数表,然后根据素数表来判断,结果⼀直超时,后来把素数表去掉,再在for循环中加判断才勉强过了. Some numbers that are not prime ...
MySQL事件调度器event的使⽤
架构师前景如何Q:假设,有⼀个需求,希望在某⼀个时刻系统调⽤⼀个begin end执⾏⼀下:⼗分钟以后执⾏⼀下begin end.亦或有⼀个需求,每个多长时间周期性执⾏begin end.那么这个时候该怎么办呢? ...
⼿机web——⾃适应⽹页设计(html/css控制)【转】
⼀. 允许⽹页宽度⾃动调整: "⾃适应⽹页设计"到底是怎么做到的?其实并不难. ⾸先,在⽹页代码的头部,加⼊⼀⾏viewport元标签.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论