如何让下表以这种方式显示,而不是仅仅水平显示?

问题描述 投票:0回答:2

我有一个名为 Books 的数据库,其中有一个名为 BookInfo 的表,其中包含以下数据:

如果我执行以下查询,数据显示如下:

但是,我想要一个显示这样的数据的查询(没有 BookID):

有人可以告诉我我必须在查询中指定什么,这样它才能以这种方式向我显示数据吗?

我在互联网上搜索了解决这个问题的不同方法,但到目前为止我还没有找到任何东西。我无法尝试任何事情,因为我真的不知道应该如何以这种方式显示数据。

sql sql-server database ssms
2个回答
1
投票

您可以使用

UNION ALL
。例如:

select pages1, chapters1, price1 from bookinfo where bookid = 1
union all
select pages2, chapters2, price2 from bookinfo where bookid = 1
union all
select pages3, chapters3, price3 from bookinfo where bookid = 1

0
投票

另一种方法是对行构造函数使用

CROSS APPLY

SELECT ca.*
FROM dbo.BookInfo CROSS APPLY 
(
  VALUES(Pages1,Chapters1,Price1),
        (Pages2,Chapters2,Price2),
        (Pages3,Chapters3,Price3)
) AS ca (Pages, Chapters, Price);
© www.soinside.com 2019 - 2024. All rights reserved.