列1 列2 列3 列4
UCE0034904 G001920 边用边学 高志清,宋雪岩
UCE0034904 G001921 边用边学 高志清,宋雪岩
UCE0034904 G001922 边用边学 高志清,宋雪岩
UCE0034904 G001923 边用边学 高志清,宋雪岩
UCE0034904 G001924 边用边学 高志清,宋雪岩
UCE0036832 G001925 Delphi 6 飞思科技产品研发中心
UCE0036832 G001926 Delphi 6 飞思科技产品研发中心
UCE0036832 G001927 Delphi 6 飞思科技产品研发中心
UCE0036832 G001928 Delphi 6 飞思科技产品研发中心
UCE0036832 G001929 Delphi 6 飞思科技产品研发中心
UCE0036832 G001930 Delphi 6 飞思科技产品研发中心
想要的结果是这样的:
列1 列2 列3 列4 列5
UCE0034904 G001920-G001924 边用边学 高志清,宋雪岩 5
UCE0036832 G001925-G001930 Delphi 6 飞思科技产品研发中心 6
------解决方案--------------------
- SQL code
SELECT 列1,MIN(列2)+'-'+MAX(列2) AS 列2,列3,列4,COUNT(*) AS 列5FROM 表GROUP BY 列1,列3,列4
------解决方案--------------------
- SQL code
--测试数据declare @table table(列1 varchar(10),列2 varchar(10),列3 nvarchar(10),列4 nvarchar(20))insert into @tableselect 'UCE0034904',' G001920',' 边用边学',' 高志清,宋雪岩' union allselect 'UCE0034904',' G001921',' 边用边学',' 高志清,宋雪岩' union allselect 'UCE0034904',' G001922',' 边用边学',' 高志清,宋雪岩' union allselect 'UCE0034904',' G001923',' 边用边学',' 高志清,宋雪岩' union allselect 'UCE0034904',' G001924',' 边用边学',' 高志清,宋雪岩' union allselect 'UCE0036832',' G001925',' Delphi 6',' 飞思科技产品研发中心' union allselect 'UCE0036832',' G001926',' Delphi 6',' 飞思科技产品研发中心' union allselect 'UCE0036832',' G001927',' Delphi 6',' 飞思科技产品研发中心' union allselect 'UCE0036832',' G001928',' Delphi 6',' 飞思科技产品研发中心' union allselect 'UCE0036832',' G001929',' Delphi 6',' 飞思科技产品研发中心' union allselect 'UCE0036832',' G001930',' Delphi 6',' 飞思科技产品研发中心'--SQL语句select 列1,min(列2)+'-'+max(列2) AS 列2,列3,列4,count(列1)as 列5 from @table group by 列1,列3,列4--结果/*列1 列2 列3 列4 列5---------- --------------------- ---------- -------------------- -----------UCE0034904 G001920-G001924 边用边学 高志清,宋雪岩 5UCE0036832 G001925-G001930 Delphi 6 飞思科技产品研发中心 6(2 行受影响)*/