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

MySQL查询查找非零列之间的最大值,mysql,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 有没有办法做到这一点?如果列数有限,可以使用CASE语句: SELECT name, CASE WHEN x3 <> 0 THEN x3 WHEN

假设我有以下数据:

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

有没有办法做到这一点?

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

SELECT name, 
  CASE WHEN x3 <> 0 THEN x3
  WHEN x2 <> 0 THEN x2
  ELSE x1 END AS want
FROM myTable;
选择名称,
当x3为0时,则为x3
当x2为0时,则为x2
否则,你会如愿以偿
从myTable;

下面是一个例子。

@TheamateUrdata分析师很乐意帮助您!如果这是你坚持的答案,请随意投票并接受它,这样未来的读者就会知道是什么解决了你的问题。