现有一下车牌号:
苏A-4567,苏A-6767,苏A-7688,苏A-3435
问题来了:
1、我想按照车牌号的最后4位数字排序,应该怎么做
2、我想按照车牌号的最后1位数字排序,应该怎么做

解决方案 »

  1.   

    最简单的就是把数字放到TStringList里边用sort方法
    然后在把排玩序的东西和原来的对应起来....
      

  2.   

    1.
    order by right(车牌号, 4)2.
    order by right(车牌号, 1)
      

  3.   

    那你出现‘苏B’时是不是也按后四位?那就没太多实际意义……
    MSSQL,ORACLE的排序按标准的SQL写就可以了。
    SELECT * FROM TABLE
    ORDER BY right(FIELD, COUNT)
      

  4.   

    兄弟,我是在TreeView上进行排序,点击某个节点,对该节点下的所有节点进行排序
    TreeView自带的不能实现我得第二种排序
      

  5.   

    你取出来的数据已经是排序的了,然后添加掉treeview里自然就是排序好的啊。
      

  6.   

    //参考如下代码
    uses StrUtils;procedure TForm1.TreeView1Compare(Sender: TObject; Node1, Node2: TTreeNode;
      Data: Integer; var Compare: Integer);
    begin
      Compare := CompareText(RightStr(Node1.Text, 4), RightStr(Node2.Text, 4));
    //  Compare := CompareText(RightStr(Node1.Text, 1), RightStr(Node2.Text, 1)); //最后一位
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      TreeView1.AlphaSort;
    end;
      

  7.   

    //自己先想办法啊
    procedure TForm1.TreeView1Compare(Sender: TObject; Node1, Node2: TTreeNode;
      Data: Integer; var Compare: Integer);
    begin
      if RightStr(Node1.Text, 1) = RightStr(Node2.Text, 1) then
        Compare := CompareText(RightStr(Node1.Text, 4), RightStr(Node2.Text, 4))
      else Compare := CompareText(RightStr(Node1.Text, 1), RightStr(Node2.Text, 1)); //最后一位
    end;