对于MySQL中的下表(表中的价格表示不同供应商提供的价格)
Products | Price1 | Price2 | Price3
Apple | 2 | 3 | 4
Pear | 2 | 1 | 1.5
Strawberry | 10 | 12 | 11
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到Apple的最大价格是Price3的结果,Pear的最大价格是Price1,草莓的最大价格是Price2,例如,我希望从上表中检索结果:
Products | MaximunPrice
Apple | Price3
Pear | Price1
Strawberry | Price2
Run Code Online (Sandbox Code Playgroud)
用途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
Run Code Online (Sandbox Code Playgroud)
结果:
Products MaxPrice
---------------------
Apple Price3
Pear Price1
Strawberry Price2
Run Code Online (Sandbox Code Playgroud)
在SQL Fiddle中查看结果
说明:
GREATEST() 函数返回给定参数的最大值.
在这里阅读更多.
编辑:
要找到最大的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
Run Code Online (Sandbox Code Playgroud)
SQL小提琴的结果
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |