各位朋友,一个表里面的数据如图1,现在当用户进行排序操作后,希望DBGRIDEH表格可以显示出如图2的排序方法。 图1: 批号 牌号
0001 2-3
0001 10-11-12
0001 4-5
0001 112-113
0001 1
0001 6-7-8
0001 9
请问能否将以上的数据,按牌号里面,各个数字的大小来排序,最后的顺序如下 图2: 批号 牌号
0001 1
0001 2-3
0001 4--5
0001 6-7-8
0001 9
0001 10-11-12
0001 112-113 请各位朋友赐教,多谢!
0001 2-3
0001 10-11-12
0001 4-5
0001 112-113
0001 1
0001 6-7-8
0001 9
请问能否将以上的数据,按牌号里面,各个数字的大小来排序,最后的顺序如下 图2: 批号 牌号
0001 1
0001 2-3
0001 4--5
0001 6-7-8
0001 9
0001 10-11-12
0001 112-113 请各位朋友赐教,多谢!
解决方案 »
- SavePictureDialog1.FileName 如何设置后缀
- webbrowser 导致应用程序死机
- 像office里面的助手,瑞星的小狮子,还有江民的青蛙等等助手是如何做出来的?
- 水晶报表的Database Files问题
- 高手请进,如何在DBEDIT中只输入“+”,“-” 或输入为空时,当焦点转移到其它控件时不提示出错,并将其置零。
- 初学者求助!!谢谢光临!
- 听说使用系统内置的API也能生成MD5,生成的程序也很小,有哪位知道的跟一下。
- 关于获取数据库数据用控件的几个问题:
- 链表节点之间的访问的问题
- 取得所有容器中的控件~!?
- delphi中varchar如何隐式转换为money
- 展开treeview同级节点
procedure TFrmGroupManage.FlatRadioButton2Click(Sender: TObject);
begin
adoquery1.Sort :='SurName,GivenName';//加入要排序字段
DBGridEh1.Columns[2].Title.sorter := smupeh;//排序字段对应的Columns,smupeh是升序
DBGridEh1.Columns[3].Title.sorter := smupeh;//排序字段对应的Columns,smupeh是升序
end;
可以这样试一试..
只要提取前面的数字
Select *,(牌号+'-')AS 排序列 from Table
Order by Convert(Int,left(排序列,CHARINDEX('-',排序列)-1))
图1(从大到小排列)
9
86
566
257
10
但应该得到图2才正确图2(从大到小排列)
566
257
86
10
9
你想怎么排都可以.转换一下类型啊
前面不是讲了吗,就是用Order By,,我用Convert 转换了一下.
取出牌号前面的数值,然后再排序
Select *,(牌号+'-')AS 排序列 from Table
Order by Convert(Int,left(排序列,CHARINDEX('-',排序列)-1))是降序或是升序,你加上ASC或Desc,就可以了