1

嘿,我正在尝试为此找出 sql 代码:

假设我有 4 列:

ID  NAME  EMAIL
1   Mike  mike@mike.com
2   Bob   bob@bob.com
3   Chris
4   Matt

我想从电子邮件中选择最后一个不为空的条目,因此在这种情况下,它将寻找 bob@bob.com 我尝试了 Coalesce,但这似乎给了我列中的值,但不是最后一个输入的值。MAX我认为只用于ID。有什么想法吗?

4

1 回答 1

0

通过加入仅返回MAX(ID). 这在 MySQL 中不是必需的,但许多其他 RDBMS 不允许您包含聚合以外的列,如果它们不在GROUP BY子句中。

SELECT yourtable.*
FROM
  yourtable
  JOIN (SELECT MAX(ID) AS ID FROM yourtable WHERE EMAIL IS NOT NULL) maxid ON yourtable.ID = maxid.ID

注意:在这两种情况下,只有当您ID是一个自动递增的列并且您没有通过插入先前 id 已被删除的行来干预它时,这才可靠地工作。

于 2012-08-17T02:34:56.977 回答