简单版的 SELECT a.CreateBy,Name =stuff((select ','+Name FROM SG_Client WHERE CreateBy = a.CreateBy for xml path('')),1,1,'')FROM SG_Client a group by a.CreateBy //连表查询 SELECT a.ContractID, LocationName =stuff( ( select ',' + LocationName FROM(select L.Na
Firebird 同一字段的多行合并为一行用LIST函数类似于MYSQL的GROUP_CONCAT. 具体用法如下: SELECT LIST(a.GG_NAME||':'||a.GG_VALUE) as GuiGEName, a.SP_IDFROM SP_GUIGE a group by a.SP_ID
T-sql 有一个for xml path('')的从句能把多行结果合并到一行,并成为xml 格式 比如有一张表tb有两列,其格式和数据为: id value—————1 aa1 bb2 aaa2 bbb2 ccc 如果对其执行sql: select id, value from tb for xml path('tbnode') 则返回的结果集仅为一行一列: <tbnode><id>1</id><value>aa</value><id&g
http://blog.csdn.net/rav009/article/details/50723307 T-sql 有一个for xml path('')的从句能把多行结果合并到一行,并成为xml 格式 比如有一张表tb有两列,其格式和数据为: id value—————1 aa1 bb2 aaa2 bbb2 ccc 如果对其执行sql: select id, value from tb for xml path('tbnode') 则返回的结果集仅为一行一列: <tbnode><id
有两个导数据的需求,1.一张表里面每一个订单号可能对应多条数据,每个单号返回时间最早的那条. 2.根据条件查询某个字段并按照逗号,合并在一起. 表类似结构如下: 第一条sql:select c.Id,c.OrderNum, c.CreateTime FROM (select t.*,row_number() over(partition by t.OrderNum order by t.CreateTime ) rn from Payinfo t WHERE t.OrderNum IN('20
,,'')) FROM Table d GROUP by Id 另外: sql 单引号转义:两个单引号转义为一个单引号 set @sql='STUFF((SELECT '','' + Names FROM Table WHERE Id = d.Id FOR xml path('''') ),1,1,'''')) FROM Table d GROUP by Id ' '' 为 '
数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一种展现如图----[多行变一列](合并后的数据在同一列上): sql如下: select name ,group_concat(sore Separator ';') as score from stu group by name 第二种展现如图----[多行变多列](合并后的数据在不同列上): sql如下: SELECT name , MAX(CASE type WHEN '数学' THEN
用到Oralce10g以后增加的函数wmsys.wm_concat 例如这张表的有两个字段,要按airport_id合并成两行可用sql语句 select airport_id, wmsys.wm_concat( account) from AIRPORT_MODIFY group by airport_id 结果为: 非常简单,美中不足的是合并结果没有排序,解决排序问题最简单的办法就是在合并列前加上distinct 此外,如果合并列结果出现乱码,需要在合并列前加上to_char(),如wm
--创建测试表 CREATE TABLE [dbo].[TestRows2Columns]( [Id] [,) NOT NULL, [UserName] [nvarchar]() NULL, [Subject] [nvarchar]() NULL, [Source] [numeric](,) NULL ) GO --插入测试数据 INSERT INTO [TestRows2Columns] ([UserName],[Subject],[Source]) SELECT N UNION ALL SE
select ptl_a01, ptl_piitem, ( ) as ptl_count, STUFF((SELECT ','+ltrim(ptl_pdid) FROM PRODUCT_TRACEABILITY_LOG , , '') AS ptl_all_pdid GROUP BY t.ptl_a01,t.ptl_piitem ORDER BY t.ptl_a01 关键字:STUFF 1.作用 删除指定长度的字符,并在指定的起点处插入另一组字符. 2.语法 STUFF ( character_