c# - 行到列的转换

标签 c# sql linq

我有如下表格

A   B   C   D   E   F
1   AA  a   b   c   d
2   BB  e   f   g   h

我希望结果如下所示

1   AA  C   a
1   AA  D   b
1   AA  E   c
1   AA  F   d
2   BB  C   e
2   BB  D   f
2   BB  E   g
2   BB  F   h

我尝试使用 Unpivot 选项,但我无法这样做?

我如何使用 SQL/C# 或 Linq 执行此操作?

谁能帮帮我?

谢谢,

最佳答案

UNPIVOT 可以很好地处理您的数据

declare @x table 
(
   A int,
   B varchar(2),
   C varchar,
   D varchar,
   E varchar,
   F varchar
)

insert into @x
values
(1, 'AA', 'a','b','v','d'),
(2, 'BB', 'e','f','g','h')

SELECT A,B,Col as C,letter as a
FROM 
   (SELECT A,B,C,D,E,F
   FROM @x) p
UNPIVOT
   (Letter FOR Col IN 
      (C,D,E,F)
)AS unpvt;

关于c# - 行到列的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536365/

相关文章:

c# - 为什么这个函数在第二轮运行速度快了几个数量级?

c# - 如何将 Sum() 等 linq 函数与动态变量一起使用

c# - 为什么使用 Attach 更新 Entity Framework 6?

c# - 在 c# 中,foreach 在每个循环中调用方法吗?

c# - 在 Visual Studio 中查看运行时的变量值

sql - PostgreSQL 分组滚动平均值

mysql - 用另一个 MySQL 表的值更新一个 MySQL 表

c# - 将 foreach 循环转换为 Linq 表达式

c# - 以下代码中按位运算符的奇怪行为的原因是什么?

MYSQL一对多关系查询从 'many'表返回一行