我已经写了这样的代码显示数据水平
SELECT * FROM TestTable
这得到在垂直视图中的输出。
ID | Name
1 | John
2 | Mckensy
3 | Valneech
4 | Zeebra
但是,我需要水平显示它。
1 | 2 | 3 | 4
John | Mckensy | Valneech | Zeebra
如何做到这一点?
我已经写了这样的代码显示数据水平
SELECT * FROM TestTable
这得到在垂直视图中的输出。
ID | Name
1 | John
2 | Mckensy
3 | Valneech
4 | Zeebra
但是,我需要水平显示它。
1 | 2 | 3 | 4
John | Mckensy | Valneech | Zeebra
如何做到这一点?
您可以使用数据透视来达到要求。既然你没有发布任何数据模型,我已经草拟了一个粗略的逻辑。请检查它,如果工程
静态
select * from your table
pivot (name for id in ([1],[2],[3],[4])) as anyrandomname
供您参考,您可以参考此链接。
https://blogs.msdn.microsoft.com/spike/2009/03/03/pivot-tables-in-sql-server-a-simple-sample/
这里输入id为1 2 3 4 static。但是我有很多数据。我不想放置静态数据。应该做什么? –
你使用哪个数据库@ Md.AbdulMasudRana –
SQL服务器数据库 –
select (select Name from test where ID=1) as 1,
(select Name from test where ID=2) as 2,
(select Name from test where ID=3) as 3,
(select Name from test where ID=4) as 4
from test
group by 1,2,3,4
你能提供的表结构? – mattymanme
这就是所谓的'pivoting'。你试图完成哪个引擎? (SQL Server,MySQL,Oracle ...) – Edu
创建表testable(id into,name char(20)) –