排序问题?(100分)

K

kfbying

Unregistered / Unconfirmed
GUEST, unregistred user!
要将字符按(1、2、3、12、12-1、13、另)排序,而电脑按字符却排成
(1、12、12-1、13、2、3、另),请教如何实现?
 
电脑排的完全正确,它是按 ASC 序排的,12 当然排在 2 之前。
为了达到你要的排序结果,可以考虑在一位数字前加个 '0'.
 
Crab:你的方法不行!
 
不是加个零,是补齐成3位:001,002,003,012,012-1 ……
 
排序是正确了!
可用DBgrid和打印时,001、004、012等前面的0不让他显示出来怎么办?
 
可以考虑自己编写一个字符串比较函数以达到你的要求.
 
DarwinZhang:
在BDgrid中排序和字符串比较函数怎么联系?能说明白点吗?
 
不显示和打印0技术:
对应字段的属性设置为: #.##,或者#,##
 
我说的太笼统了,是按 luosheng 说的加零补齐。
 
libaoliang:
该字段为string型的,怎么能设置“字段的属性设置为: #.##,或者#,##”,
这是对integer和real的!
 
那可以把int和real的转化为string型的呀!!
 
记录排序正确了,那你把这个字段取个别名,然后原先那名字还是1、2这样显示。
只不过DBGrid里不让它(就是你取别名的排序字段)显示出来不就可以了。
SQL语句取出来用来排序就可以了。
绝对可行。
 
多人接受答案了。
 
顶部