SQL中如何按照条件合并多行的数据
例如:
合并前:
701000451 300000214 R4 R6 R7 R12 R148
701000451 300000214 (R3-C12)
701000682 303000053 C421 C427 C429
701000682 303000053 C1 C4 C5
701000753 301000152 C115 C118 C121
701000753 301000152 C225 C228
701000753 301000152 C236 C237
合并后效果:
701000451 300000214 R4 R6 R7 R12 R148(R3-C12)
701000682 303000053 C421 C427 C429 C1 C4 C5
701000753 301000152 C115 C118 C121 C225 C228 C236 C237
用什么语句可以做到这种效果啊,请高手指教
问题补充:查询到的结果是使用以下语句查询的
select code,ccode,loc from bomloc where opid in (select opid from bomloc group by opid having count(opid)>1)
查询出来的结果 以上是我查询结果的一部分,查询出来3000多项,所以没办法手工去合并,希望高手能教下
例如:
合并前:
701000451 300000214 R4 R6 R7 R12 R148
701000451 300000214 (R3-C12)
701000682 303000053 C421 C427 C429
701000682 303000053 C1 C4 C5
701000753 301000152 C115 C118 C121
701000753 301000152 C225 C228
701000753 301000152 C236 C237
合并后效果:
701000451 300000214 R4 R6 R7 R12 R148(R3-C12)
701000682 303000053 C421 C427 C429 C1 C4 C5
701000753 301000152 C115 C118 C121 C225 C228 C236 C237
用什么语句可以做到这种效果啊,请高手指教
问题补充:查询到的结果是使用以下语句查询的
select code,ccode,loc from bomloc where opid in (select opid from bomloc group by opid having count(opid)>1)
查询出来的结果 以上是我查询结果的一部分,查询出来3000多项,所以没办法手工去合并,希望高手能教下
使用自定义函数
--合并处理函数
CREATE FUNCTION dbo.f_str(@code varchar(9),@ccode varchar(9))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+' '+CAST(loc as varchar)
FROM bomloc
WHERE code=@code And ccode=@ccode
RETURN(STUFF(@re,1,1,''))
END
GO
--调用函数
SELECT code,ccode,loc =dbo.f_str(code,ccode) FROM bomloc GROUP BY code,ccode
--合并处理函数
CREATE FUNCTION dbo.f_str(@code varchar(9),@ccode varchar(9))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+' '+CAST(loc as varchar)
FROM bomloc
WHERE code=@code And ccode=@ccode
RETURN(STUFF(@re,1,1,''))
END
GO
--调用函数
SELECT code,ccode,loc =dbo.f_str(code,ccode) FROM bomloc GROUP BY code,ccode


