在查询 SQL 中查询
Posted
技术标签:
【中文标题】在查询 SQL 中查询【英文标题】:Query inside a query SQL 【发布时间】:2021-09-23 16:06:38 【问题描述】:所以我正在尝试进行查询,我需要选择价格最高的前 5 名产品,然后从单价最低的前 5 名中选择前 3 名。
我目前有此查询的前 5 名
select top 5 * from Products order by UnitPrice desc
但我不知道如何进行另一个选择以选择单价最低的 3 个,有什么提示吗?我曾尝试在选择或子查询中寻找选择,但没有帮助,提前致谢。
【问题讨论】:
请标注数据库平台 【参考方案1】:如果您希望第 3-5 行按UnitPrice
排序,您可以使用offset
/fetch
:
select p.*
from products p
order by UnitPrice desc
offset 2 rows fetch first 3 rows only;
这是标准 SQL,SQL Server 也支持(SQL Server 是使用 top
的最常见的数据库)。
【讨论】:
感谢工作! @John 。 . .如果这回答了您的问题,您可以接受答案。【参考方案2】:尝试嵌套查询。
select top 3 *
from (
select top 5 * from Products order by UnitPrice desc
) a
order by UnitPrice;
结果将以相反的顺序出现,因此,如果输出顺序是必需的,则需要第二个嵌套语句。
【讨论】:
这会给我一个二阶语法错误 更正了查询。它缺少表别名。以上是关于在查询 SQL 中查询的主要内容,如果未能解决你的问题,请参考以下文章