把多个列值合成一个
航线 停靠港口 顺序号
1 AA 1
1 BB 2
1 CC 3
2 BB 1
2 CC 2
现在一个表有其中三个字段。一条航线对应有多个港口。其中顺序号是把它依次停靠的顺序。
现在我想得到一个航线它按顺序对就所停靠的港口
如:
航线 停靠港口
1 AA-BB-CC
2 BB-CC
------解决方案----------------------創建函數
Create Function F_TEST(@航线 Int)
Returns Nvarchar(1000)
As
Begin
Declare @S Nvarchar(1000)
Select @S = ' '
Select @S = @S + '- ' + 停靠港口 From TEST Where 航线 = @航线 Order By 顺序号
Select @S = Stuff(@S, 1, 1, ' ')
Return @S
End
GO
--測試
Select
航线,
dbo. F_TEST(航线) As 停靠港口
From
TEST
Group By
航线
------解决方案-------------------- create function f(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str= ' '
select @str=@str+ '- '+停靠港口 from 表名 where 航线 = @id
set @str=stuff(@str,1,1, ' ')
return @str
end
select 航线,dbo.f(航线) from 表名 group by 航线