SQL:ORDER BY 两列混合,不基于优先级

标签 sql mysql

我正在使用 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/

相关文章:

php - 使用 PHP(或查询)在 MySQL 数据库中使用超过数千行的常用词

php - 如何在 LIMIT 子句中应用 bindValue 方法?

MySQL,用Images图片将数据从行移动到列

mysql - 从两个表中选择相同的元素

java - JDBC : Batch insert not inserting value to database

php - 尝试调用 MYSQL 过程以根据条件向 php 返回 int 值

php - 过滤日期order_date在其日期范围sql问题

mysql - 使用分组结果集获取 MySQL 查询的一列中具有最大值的行

sql - 如何表示可互换的列

SQL - 连续 "ON"语句