sqlserver合并行,sql server 合并结果

SQL Server2008 怎么将一列的多行内容合并成一行,其他列不合并。如图:

SQLSERVER本身不可以, 你需要用报表服务或者自己写一个程序来展示数据

创新互联建站专注于绍兴网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供绍兴营销型网站建设,绍兴网站制作、绍兴网页设计、绍兴网站官网定制、成都小程序开发服务,打造绍兴网络公司原创品牌,更为您提供绍兴网站排名全网营销落地服务。

SQL server 多行合并成一个单元格值

首先要实现你这样的结果在SQLSERVER中基本是不可能的,因为这样的展示基本违背了第一范式的原则。

要实现这个唯独通过程序来操作。

或者你可以实现为:

a 11、22、33(‘、’为用户自定义的分隔符)

b 44、55、66

sql查询时如何合并两行数据,具体如下。

看样子像sqlserver,就按sqlserver的写了

创建测试表,数据:

create table test

(requestid int,

logid int,

operatedate varchar(10),

operatetime varchar(10),

operator int);

insert into test values (502,1372,'2018-06-13','16:16:03',155);

insert into test values (502,1446,'2018-06-14','09:00:32',153);

insert into test values (502,1472,'2018-06-14','09:33:07',157);

insert into test values (502,1474,'2018-06-14','09:35:11',151);

insert into test values (502,1657,'2018-06-14','15:17:10',153);

insert into test values (502,1660,'2018-06-14','15:18:17',155);

insert into test values (502,1661,'2018-06-14','15:19:01',153);

insert into test values (502,1662,'2018-06-14','15:19:48',157);

insert into test values (502,1677,'2018-06-14','15:31:34',151);

insert into test values (502,1694,'2018-06-14','16:42:51',12);

insert into test values (502,1709,'2018-06-14','18:08:45',9);

insert into test values (502,1730,'2018-06-15','08:09:14',158);

insert into test values (502,1732,'2018-06-15','08:09:16',157);

执行:

with t as

(select test.*,row_number() over (partition by requestid order by logid) rn from test)

select t1.requestid,t1.logid,cast(t1.operatedate+' '+t1.operatetime as datetime) begintime,cast(t2.operatedate+' '+t2.operatetime as datetime) endtime,t1.operator from t t1 left join t t2 on t1.requestid=t2.requestid and t1.rn=t2.rn+1

查询结果:

最后时间没按你那种方式显示,你那种到时候算操作时间也麻烦,还不如改成时间日期类型了。

SQL语句怎么实现几列数据合并成一行??

你这样做的话 就这两个表是不行的。

本来就是一对多的关系 你强行的要把其变成一对一的关系那是不可能。

如果你是要在程序里实现可以这样:

001,a,10

001,b,10

001,c,10

写到一个DataTable里

然后循环读取行的第二和第三个值

在写到一个字符串里


当前题目:sqlserver合并行,sql server 合并结果
文章源于:http://azwzsj.com/article/dsipoph.html