我要基于“ First”和“ Last”两个字段按字母顺序对条目进行排序。
这两个字段的域均为CHAR(30)
。这两个字段都不是任何键。
例如,我使用下表。
Last First
Banner Bruce
Wayne Bruce
Wayne Benjamin
Kent Clark
Rodgers Steve
Jordan Hal
Stark Tony
Howlett Logan
然后,我使用下面的SQL语句,根据这里的内容(请看最后一个示例)是一个有效的SQL语句,应按姓氏排序,然后按名字的子类别排序。
SELECT * FROM Heros ORDER BY Last ASC, First ASC;
我正在寻找的结果是:
Last First
Banner Bruce
Howlett Logan
Jordan Hal
Kent Clark
Rodgers Steve
Stark Tony
Wayne Benjamin
Wayne Bruce
相反,我得到:
Last First
Banner Bruce
Howlett Logan
Jordan Hal
Kent Clark
Rodgers Steve
Stark Tony
Wayne Bruce
Wayne Benjamin
基本上,最后两行按姓氏排序后,不按姓氏排序。我不确定为什么返回的行不按我的预期排序。除了SQlCommands.net之外,我还查看了dev.mysql.com。一些Stack Overflow主题提出了一些答案,其中SQL语句几乎与此语法相同。对我所缺少的任何想法将不胜感激。
如果名字或姓氏周围有空格,请尝试Trim()
在ORDER BY
子句中输入以下函数:
SELECT * FROM Heros
ORDER BY TRIM(Last) ASC
, TRIM(First) ASC;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句