结果集的顺序

时间:2019-05-21 12:19:34

标签: mysql sql

我正在按具有字符串的列对结果集进行排序,并且希望按字母顺序对其进行排序。当我按列对其进行排序时,似乎按字符串长度而不是按字母顺序进行排序。

这是我当前的sql查询:

SELECT clientName FROM requests ORDER By clientName ASC

我也尝试过:

SELECT clientName FROM requests ORDER By SUBSTR( clientName, 1, 1 ) ASC

clientName是VARCHAR

我希望该结果集按字母顺序排序(我在具有int的列中也遇到了类似的问题,该列似乎也按长度而不是按数字排序)。

表的创建语句:

CREATE TABLE Requests (
    reqID INT(11) PRIMARY KEY AUTO_INCREMENT,
    foilType VARCHAR(25) NOT NULL,
    numberKits INT(11) NOT NULL,
    dueDate date,
    clientName VARCHAR(100) NOT NULL,
    deliveryAddress VARCHAR(100) NOT NULL,
    quoteNo VARCHAR(25) NOT NULL,
    priority INT(11) NOT NULL,
    comments VARCHAR(100),
    contract BLOB,
    stat VARCHAR(25),
    reference INT(11),
    date_updated DATETIME
 );

当我有三个不同的客户端(例如ABC,BC,DEFG)时,查询结果的顺序为:DEFG,ABC,BC。

更新:SQL提琴正在给我想要的结果,我肯定在其他地方出错了,如果发现错误,我将对其进行编辑。对这个坏问题表示歉意。

1 个答案:

答案 0 :(得分:0)

所以我的错误是我使用HashSet来存储clientName的所有值,所以结果集没有问题,而是遍历HashSet时。我现在通过使用LinkedHashSet解决了它