You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite中使用子查询获取最值对应产品名的问题求助

问题分析与解决方法

你原来的合并查询无结果,核心原因是SELECT MAX(UnitPrice) OR MIN(UnitPrice)逻辑错误。SQL中OR是逻辑运算符,两个非零数值做OR运算会返回布尔值1(SQLite用1代表真),相当于你在找UnitPrice = 1的产品,自然没有匹配结果。

以下是两种符合要求(使用子查询)的正确写法:

方法一:使用IN结合UNION ALL子查询

通过子查询分别获取最小和最大价格,合并成结果集后用IN匹配:

SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice IN (
    SELECT MIN(UnitPrice) FROM Products
    UNION ALL
    SELECT MAX(UnitPrice) FROM Products
);

方法二:使用OR连接两个独立子查询

直接用两个子查询分别获取最小、最大价格,通过OR匹配任意一个:

SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice = (SELECT MIN(UnitPrice) FROM Products)
   OR UnitPrice = (SELECT MAX(UnitPrice) FROM Products);

两种写法都能正确返回单价最低和最高的所有产品名称及对应价格。

内容的提问来源于stack exchange,提问作者Pauline Pl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:40:51