在SQL Server中将行转换为列
有没有办法转置此表:在SQL Server中将行转换为列,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,有没有办法转置此表: A a A b A c A d B e B f C g C h C i 这个 A B C a e g b f h c i d 非常感谢 您可以使用行数和条件聚合来执行此操作: WITH Cte AS( SELECT *, rn = ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2) FROM #tbl )
A a
A b
A c
A d
B e
B f
C g
C h
C i
这个
A B C
a e g
b f h
c i
d
非常感谢 您可以使用行数和条件聚合来执行此操作:
WITH Cte AS(
SELECT *,
rn = ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2)
FROM #tbl
)
SELECT
A = MAX(CASE WHEN col1 = 'A' THEN col2 END),
B = MAX(CASE WHEN col1 = 'B' THEN col2 END),
C = MAX(CASE WHEN col1 = 'C' THEN col2 END)
FROM Cte
GROUP BY rn
您可以使用行数和条件聚合来执行此操作:
WITH Cte AS(
SELECT *,
rn = ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2)
FROM #tbl
)
SELECT
A = MAX(CASE WHEN col1 = 'A' THEN col2 END),
B = MAX(CASE WHEN col1 = 'B' THEN col2 END),
C = MAX(CASE WHEN col1 = 'C' THEN col2 END)
FROM Cte
GROUP BY rn
的动态sql版本
质疑
结果
的动态sql版本
质疑
结果
+---+---+---+
| A | B | C |
+---+---+---+
| a | e | g |
| b | f | h |
| c | | i |
| d | | |
+---+---+---+