:ここでは一つの方法です。
declare @data table (c1 int, c2 int, c3 int, c4 int, c5 int)
insert into @data (c1, c2, c3, c4, c5)
values
(364, 53, 468, 184, 469),
(48, 47, 49, 364, 266)
;with NumberedRows as
(
select
d.c1, d.c2, d.c3, d.c4, d.c5,
row_number() over(order by (select 1)) rn
from @data d
)
select
rn, r.c1, r.c2, r.c3, r.c4, r.c5,
stuff(
(
select concat('/', p.num)
from
(
select rr.c1, rr.c2, rr.c3, rr.c4, rr.c5
from NumberedRows rr
where rr.rn = r.rn
) rr
unpivot (num for cols in (c1, c2, c3, c4, c5)) p
order by p.num
for xml path(''), type
).value('.', 'varchar(max)')
, 1, 1, '') value_list
from NumberedRows r
order by r.rn
そして、それは@Martinと@GordonによってそのVALUES(),()
トリックに対してどのように見えるの上には、複雑に見えます。うん
同じ「タイプ」のデータを複数の異なる列に格納する場合、既にリレーショナルデータベースのポイントが不足しています。 ** **すべてのデータが同一である場合は、複数の行(および単一の列)として格納する必要があります。 **これらの列の順序が重要な場合(1-5の値)、メタデータではなくデータとしてモデル化する必要があります。 –
行に実際の識別子がありますか?もしそうなら、アンピボットソリューションはずっと簡単になるでしょう... –
@BenThul私はそれがより簡単になるのではないかと疑います。どのようなコードがありますか? –