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