MySQL查询在非零的列之间查找最大值

时间:2015-06-25 17:25:19

标签: mysql

假设我有以下数据:

data

Names X1 X2 X3
Jimmy  1  3  0
Mark   2  0  0
Jimmy  4  0  5

我在编写唯一查询时遇到问题。我想要返回的是每行非零的最后一个数字。所以结果看起来像

Names Want
Jimmy    3
Mark     2
Jimmy    5

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

如果列数有限,则可以使用CASE语句:

SELECT name, 
  CASE WHEN x3 <> 0 THEN x3
  WHEN x2 <> 0 THEN x2
  ELSE x1 END AS want
FROM myTable;

以下是SQL Fiddle示例。