我正在使用mySQL。我必须按姓氏排序联系人的姓名,但是在没有姓氏的情况下,我要按姓氏排序。

看起来像:

ORDER BY lastname = "", lastname, firstname

但是,这会使带有姓氏的人出现在顶部。我想要的行为是将名字和姓氏混合在一起,就像它们来自同一字段一样。

示例(假设这些是名称):
A,T
Z,G
A
B
C

相对:
A
A,T
B
C
Z,G

谢谢

最佳答案

使用COALESCENULLIF:

ORDER BY COALESCE(NULLIF(LastName, ''), FirstName), FirstName

关于SQL:ORDER BY两列混合在一起,不是基于优先级的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4512767/

10-16 15:04