gpt4 book ai didi

sql-server - SQL Server如何水平显示数据?

转载 作者:行者123 更新时间:2023-12-04 17:07:32 24 4
gpt4 key购买 nike

如何水平显示表格数据?

这是我的表定义

create table [User]
(
Id int primary key identity(1,1),
Name varchar(50),
Gender varchar(10)
)

这是我在 SQL Server 表中的数据

+====+=======+========+
| Id | Name | Gender |
+====+=======+========+
| 1 | Fahad | Male |
+----+-------+--------+
| 2 | Saad | Male |
+----+-------+--------+
| 3 | Asif | Male |
+====+=======+========+

我想像这样水平显示

+========+=======+======+======+
| Id | 1 | 2 | 3 |
+========+=======+======+======+
| Name | Fahad | Saad | Asif |
+--------+-------+------+------+
| Gender | Male | Male | Male |
+========+=======+======+======+

最佳答案

也许是 UNPIVOTPIVOT 的组合?

(虽然你的列需要是相同类型才能工作,我已经在你的表中更改了,或者你可以在 SELECTCAST/CTE 等)

CREATE table [User](
Id int primary key identity(1,1),
Name varchar(50),
Gender varchar(50)
)

SET IDENTITY_INSERT [User] ON

INSERT INTO [User](Id,Name,Gender) VALUES
(1, 'Fahad','Male'),
(2,'Saad','Male'),
(3,'Asif','Male')

SELECT * FROM [User]
UNPIVOT ([Value] FOR Cols IN ([Name],[Gender])) Unp
PIVOT (MAX([Value]) FOR Id IN ([1],[2],[3])) Piv


Cols 1 2 3
------ ------ ------ -------
Gender Male Male Male
Name Fahad Saad Asif

(2 row(s) affected)

CASE 也可用于实现相同的目的 - SO 上有大量示例。

编辑:优秀示例 Simple way to transpose columns and rows in Sql?(这可能是那个问题的重复)

关于sql-server - SQL Server如何水平显示数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com