Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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
在SQL Server中将行转换为列,将列转换为行_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

在SQL Server中将行转换为列,将列转换为行

在SQL Server中将行转换为列,将列转换为行,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,这是我现有的表格: id |user-LastName |user-FirstName |manager-lasename |manager-firstname 22 Gould Todd raj kumar 23 Volk Michael anil tej 24 Sarosiek Kristi

这是我现有的表格:

id  |user-LastName  |user-FirstName |manager-lasename   |manager-firstname
22   Gould              Todd             raj                 kumar
23   Volk               Michael          anil                tej
24   Sarosiek           Kristi           mahesh              banda
我需要得到以下结果:

id  name                user          manager      
22  last name           gould          raj     
22  first name          todd           kumar       
23  last name           Volk           anil    
23  first name          Michael        tej     
24  last name           Sarosiek       mahesh      
24  first name          Kristi         banda    

我尝试过使用
PIVOT
,但无法使其工作。有人有解决方案吗?

尽管这里的设计我认为是您问题的关键,但通过一个联合,您可以非常轻松地获得数据

select id
    , 'LastName' as name
    , userLastName
    , ManagerLastName
from SomeTable

union all

select id
    , 'FirstName' as name
    , userFirstName
    , ManagerfirstName
from SomeTable

order by id
    , name desc

您好,您并不是真的试图在这里进行轴心转换,而是以不同的方式确定现有数据的方向

获得所需结果的一种方法是创建两个查询和联合:

select id, 'FirstName' as name, user_firstName as "user" , manager_firstname as manager from p
union
select id, 'LastName' as name, user_LastName as "user" , manager_lastname as manager from p;

您的表似乎存在一些潜在的规范化问题。你不应该把经理的信息放在另一张表格里吗?不确定该表是什么,但用户数据可能也应该在一个单独的表中。