Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在SQL或EF中将列转换为行_C#_Sql_Entity Framework_Transpose - Fatal编程技术网

C# 如何在SQL或EF中将列转换为行

C# 如何在SQL或EF中将列转换为行,c#,sql,entity-framework,transpose,C#,Sql,Entity Framework,Transpose,我有一个SQL表的列表,该列表可以更改,我想将其转换并保存到一个带有2个fieldsName和Value的c列表中 例如:表AddressesId int、DocId int、Type int、StreetName varchar、StreetNo int-其他表将具有其他数据类型 SELECT Id , DocId, Type , StreetName , StreetNo FROM Addresses WHERE DocId = 2 这将导致我要转置的多个记录。 问题1:在转置表格时,最好

我有一个SQL表的列表,该列表可以更改,我想将其转换并保存到一个带有2个fieldsName和Value的c列表中

例如:表AddressesId int、DocId int、Type int、StreetName varchar、StreetNo int-其他表将具有其他数据类型

SELECT Id , DocId, Type , StreetName , StreetNo FROM Addresses WHERE DocId = 2
这将导致我要转置的多个记录。 问题1:在转置表格时,最好的方法是什么

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
二,。C转置。这些桌子未经翻译

            foreach (string tb in Tables)
            {                    
                var results = context.Database.SqlQuery("SELECT * FROM "+ tb +" WHERE DocId = 2");
                //Transpose results. 
            }
创建表

创建表格yourtable [Country_Code]varchar3[1960]varchar4[1961]varchar4[1962]varchar4[2011]varchar4 ;

插入到您的表中 [国家代码],[1960],[1961],[1962],[2011] 价值观 ‘IND’、‘va11’、‘va12’、‘va13’、‘va1x’, ‘AUS’、‘va21’、‘va22’、‘va23’、‘va2x’, ‘ENG’、‘va31’、‘va32’、‘va33’、‘va3x’

; 使用unpivot将列转换为行

选择国家/地区代码、年份、值 从你的桌子上 unpivot 价值 年[1960]、[1961]、[1962]、[2011] u

您可以从下面的链接看到演示