对于MySQL中的下表(表中的价格表示不同供应商提供的价格)
Products | Price1 | Price2 | Price3
Apple | 2 | 3 | 4
Pear | 2 | 1 | 1.5
Strawberry | 10 | 12 | 11
我如何得到Apple的最大价格为Price3的结果,Pear的最大价格为Price1,草莓的最大价格为Price2,例如,我希望从上表中检索结果:
Products | MaximunPrice
Apple | Price3
Pear | Price1
Strawberry | Price2
答案 0 :(得分:7)
使用GREATEST
:
SELECT Products,
CASE GREATEST(Price1, Price2, Price3)
WHEN Price1 THEN 'Price1'
WHEN Price2 THEN 'Price2'
WHEN Price3 THEN 'Price3'
END AS MaxPrice
FROM TableName
结果:
Products MaxPrice
---------------------
Apple Price3
Pear Price1
Strawberry Price2
请参阅SQL Fiddle
中的结果<强>解释强>
GREATEST()
函数返回给定参数的最大值。
了解更多here。
修改强>
要查找最大的non-null
值,您可以使用IFNULL
或COALESCE
:
SELECT Products,
CASE GREATEST(IFNULL(Price1,0), IFNULL(Price2,0), IFNULL(Price3,0))
WHEN Price1 THEN 'Price1'
WHEN Price2 THEN 'Price2'
WHEN Price3 THEN 'Price3'
END AS MaxPrice
FROM TableName