gpt4 book ai didi

sql-server - SQL Server - 为每个 FK 选择前 5 行

转载 作者:行者123 更新时间:2023-12-02 21:47:51 26 4
gpt4 key购买 nike

我有以下查询,用于查找与搜索匹配的前 5 个产品。每个产品都与一个商店

相关联

SELECT TOP 5 * FROM Products p, Shops s WHERE p.ShopId = s.ShopId AND p.ProductName LIKE '%christmas%'

我需要扩展它,以便它返回每个 商店中的前 5 个产品

有人可以让我知道如何修改查询来实现此目的吗? - 即选择每个商店中与“%christmas%”匹配的前5名产品(而不是当前显示所有商店中与“%christmas%”匹配的前5名产品)。

最佳答案

您实际上缺少一个 ORDER BY 来使 TOP 有意义,或者缺少任何基于 ROW_NUMBER 且需要 ORDER BY 的解决方案。

SELECT
*
FROM
Shops s
CROSS APPLY (
SELECT TOP 5
*
FROM
Products p
WHERE
p.ShopId = s.ShopId AND p.ProductName LIKE '%christmas%'
ORDER BY --added on edit
???
) X

关于sql-server - SQL Server - 为每个 FK 选择前 5 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1450603/

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