2

こんにちは、誰でも次のことを手伝ってくれますか。以下を実現するには、MS SQL ステートメントを作成する必要があります。

Table1 には 2 つの列があります:Column1およびColumn2

table1 のデータは次のようになります

Column1   Column2
1         a
1         b
1         c
2         w
2         e
3         x

次のように出力するには、Sqlステートメントが必要です

Column1   Column2
1         a, b, c
2         w, e
3         x

つまり、column1 でグループ化し、column2 の値をコンマ区切りで連結する必要があります。これは、SQL Server 2000 以降で実行できる必要があることに注意してください。

4

1 に答える 1

4

値を連結する関数を作成できます

create function dbo.concatTable1(@column1 int) returns varchar(8000)
as
begin
declare @output varchar(8000)
select @output = coalesce(@output + ', ', '') + column2
from table1
where column1 = @column1 and column2 > ''
return @output
end
GO

このテーブルがあると仮定すると

create table table1 (column1 int, column2 varchar(10))
insert table1 select 1, 'a'
insert table1 select 1, 'b'
insert table1 select 1, 'c'
insert table1 select 2, 'w'
insert table1 select 2, 'e'
insert table1 select 3, 'x'
GO

このように使用します

select column1, dbo.concatTable1(column1) column2
from table1
group by column1
于 2011-02-04T03:03:11.690 に答える