gpt4 book ai didi

sql - 检查某个行是否存在,否则选择不同的行

转载 作者:行者123 更新时间:2023-12-02 09:24:09 24 4
gpt4 key购买 nike

假设我有一张包含

|vendor  | price| productID|  
|--------------------------------|
|abc | 6 | 0001 |
|1 | 7 | 0001 |
|def | 8 | 0001 |
|xyz | 30 | 0002 |
|zxy | 32 | 0002 |

现在我想获得产品的 min() 价格的供应商
对于产品 0001,它将是供应商 ABC
对于产品 0002,它将是供应商 xyz

但!如果有一个名为 的供应商1 如果没有名为 的供应商,我希望看到他的名字而不是具有 min() 价格的实际供应商1 对于产品,我想再次查看价格为 min() 的产品

如果这对你有意义..它有点像 if-else 构造,但我不知道如何在 SQL 中做到这一点

(抱歉,表格格式不正确,我只是没有正确格式化表格)

谢谢

最佳答案

这是一个优先级查询。一种方法是使用 row_number()并将优先级规则放入 order by .结果查询:

select t.*
from (select t.*,
row_number() over (partition by productId
order by (case when vendorid = 1 then 1 else 2 end),
price asc
) as seqnum
from t
) t
where seqnum = 1;

关于sql - 检查某个行是否存在,否则选择不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39268978/

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