我有一个名为 Books 的数据库,其中有一个名为 BookInfo 的表,其中包含以下数据:
如果我执行以下查询,数据显示如下:
但是,我想要一个显示这样的数据的查询(没有 BookID):
有人可以告诉我我必须在查询中指定什么,这样它才能以这种方式向我显示数据吗?
我在互联网上搜索了解决这个问题的不同方法,但到目前为止我还没有找到任何东西。我无法尝试任何事情,因为我真的不知道应该如何以这种方式显示数据。
您可以使用
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
另一种方法是对行构造函数使用
CROSS APPLY
:
SELECT ca.*
FROM dbo.BookInfo CROSS APPLY
(
VALUES(Pages1,Chapters1,Price1),
(Pages2,Chapters2,Price2),
(Pages3,Chapters3,Price3)
) AS ca (Pages, Chapters, Price);