gpt4 book ai didi

mysql - 从 SQL 中的同一行返回最小值的列名

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:35 25 4
gpt4 key购买 nike

我想从具有相同行的表中检索最小值和相应的列名。查看检索最小值的查询:

SELECT least(supplier1,supplier2,supplier3,supplier4,supplier5) AS minValue 
FROM
priceTable
WHERE partno='OL0003';

上面的结果是 20。现在,我想选择 20 和在本例中为 Supplier1 的列名。我需要添加什么查询,或者是否有可以帮助立即完成此操作的重构代码。我正在使用 mysql enter image description here

最佳答案

之后,你需要一个case表达式:

SELECT least(supplier1, supplier2, supplier3, supplier4, supplier5) AS minValue,
(CASE least(supplier1, supplier2, supplier3, supplier4, supplier5)
WHEN supplier1 THEN 'supplier1'
WHEN supplier2 THEN 'supplier2'
WHEN supplier3 THEN 'supplier3'
WHEN supplier4 THEN 'supplier4'
WHEN supplier5 THEN 'supplier5'
END) as column_name_for_min
FROM priceTable
WHERE partno = 'OL0003';

如果您更好地构建数据,这会简单得多。您应该有一个表 PartSuppliers,每个零件和每个供应商一行。

那么你可以通过多种方式获得最少的值(value),例如:

select ps.*
from partsuppliers ps
where ps.cost = (select min(ps2.cost)
from partsuppliers ps2
where ps2.partno = ps.partno
);

关于mysql - 从 SQL 中的同一行返回最小值的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55591508/

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