0

SQL Server では、次のような行からどのように移動するのか疑問に思っています。

create table t1
(
n1 int,
n2 int,
n3 int,
a1 char, 
a2 char,
a3 char,
b1 char, 
b2 char, 
b3 char
)

insert into t1 values (1, 2, 3, 'a', 'b', 'c', 'x', 'y', 'z')

返すクエリに:

n1 n2 n3 As Bs

1, 2, 3, a, x 
1, 2, 3, b, y
1, 2, 3, c, z

ピボットしたい列のグループは静的で、列数が同じです。

4

2 に答える 2

2

これを試して

SELECT n1,n2,n3,a,b
FROM 
   (SELECT * FROM t1) p
    UNPIVOT (a FOR ACOL IN (a1,a2,a3))AS u1
    UNPIVOT (b FOR BCOL IN (b1,b2,b3))AS u2
WHERE RIGHT(ACOL,1) =  RIGHT(BCOL,1);

SQLデモ

于 2013-04-18T21:39:50.190 に答える
0

ユニオン クエリはどうですか。

SELECT
    n1
    , n2
    , n3
    , a1 AS [As]
    , b1 AS [Bs]
FROM 
    t1
UNION ALL
SELECT
    n1
    , n2
    , n3
    , a2
    , b2
FROM 
    t1
UNION ALL
SELECT
    n1
    , n2
    , n3
    , a3
    , b3
FROM t1
order by a1
于 2013-04-18T21:31:38.423 に答える