按照STRING排序就行了。你放心吧。
解决方案 »
- 在VB6中,如何检测到一个网页窗口已经打开。假设检测到窗口http://www.btophr.com/common/userto.asp已经打开,又如何通过编程强行关闭它
- 请问VB如何读取点阵字库啊?
- 两个小问题,请大家帮帮忙,急!!!
- 语句为: Set Frmshow.DataGrid1.DataSource = rs---错误为:行集合不支持标签---我是想用另一个窗体的datagrid显示数据
- 如何定位报表中的最后一条记录!!!
- ado控件更新太慢导致出错,怎么解决?
- Run-time error 430:class does not support automation or does not suport excepted interface
- 如何使winsock用调制解调器而不是网卡
- 请成都的vb朋友编一公司用的进帐,出帐系统
- 一个男生的困惑!!!!
- 高分,请问在vb中怎么做气球帮助?
- 分别将TextBox和DataGrid绑到数据库的一个表上,....
string的话10肯定在9前面
不信你试一下
C.0001.0001
C.0001.0002
......
C.0002.0001
......
C.9999.9999
这下排序就很容易了
ORDER BY 一下就可以了,意下如何?
后面的例子更是莫名其妙。
先说明:你是不是想按照每段的数字大小来排序?
比如应该排成:
C.1
C.5.7
C.5.10
C.10.1
再看看你自己写的是这个意思么?
不说别的,就用我举的四个数做例子,你是不是想这样排?
对其实就是树型排序阿
但因为有了"."
使原来简单的问题复杂了
只要如LANDEHUTU所说,把点格式化到固定的位置上,就可以排序了。如果你懒得写,加点分我帮你写一个。
先说好,我可只会SQL SERVER。
如果你写的能够实现功能
加分没有问题
呵呵sql server
RETURNS varchar(100) AS
BEGIN
declare @i int;
declare @Pos1 int;
declare @Pos2 int;
declare @tStr varchar(4);
declare @tResultStr varchar(100);
declare @tChar as varchar(1); set @i=1;
set @tResultStr='';
while @i<=len(@TreeStr)
begin
set @Pos1=@i;
while @i<=len(@TreeStr)
begin
set @tChar=substring(@TreeStr,@i,1);
if (@tChar='.') break;
set @i=@i+1;
end
set @Pos2=@i;
set @tStr=substring(@TreeStr,@Pos1,@Pos2-@Pos1);
set @tStr=left('000000',4-len(@tStr))+@tStr;
set @tResultStr=@tResultStr+@tStr;
set @i=@i+1;
end return @tResultStr;
END创建此函数后,使用
select dbo.F_FORMATTREE ('C.1.2')
返回000C00010002,问题已经解决。
你用
select * from TABLE order by dbo.F_FORMATTREE (code)
就可以了。注意只能在SQL SERVER 2000中使用。