我有一个 SQL 表列表(列表可以更改),我想将其转置并保存到带有 2 个字段(名称和值)的 ac# 列表中。
例如:表地址(Id int、DocId int、Type int、StreetName varchar、StreetNo int)——其他表将具有其他数据类型。
SELECT Id , DocId, Type , StreetName , StreetNo FROM Addresses WHERE DocId = 2
这将导致我想转置多条记录。 Q1:转置表格时最好的方法是什么?
1.SQL转置。这些列需要转换(CAST),但为了便于阅读:
SELECT Field, Value FROM
( SELECT Id, DocId, Type, StreetName, StreetNo FROM Addresses WHERE DocId = 2) p
UNPIVOT
(Value FOR Field IN (Id, DocId, Type, StreetName, StreetNo)) AS unpvt
2. C#转置。表格未转置发送。
foreach (string tb in Tables)
{
var results = context.Database.SqlQuery("SELECT * FROM "+ tb +" WHERE DocId = 2");
//Transpose results.
}