主题:  order by问题

davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#12004/5/14 14:36:44
请教DX关于order by问题。

读取的数据库内容:
Nclass




语句:sql="select * from ANclass where classid="&classid&" order by Nclass"

怎么才能按下列顺序读出:





谢谢!



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#22004/5/14 17:07:59
order by Nclass desc'倒序
order by Nclass asc '顺序(默认)


难人一个……

davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#32004/5/17 12:11:09
这个我已经试了
sql="select * from ANclass where classid="&classid&" order by Nclass desc"
结果:
十一
十五
十四
十三
十七
十六
十九
十二
十八
二十

order by就这俩个参数:
order by Nclass desc'倒序
order by Nclass asc '顺序(默认)

order by,可不可以解决这个排序问题呢?
请大虾指点!



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#42004/5/17 12:26:02
不能识别中文
为什么不用数字呢
要显示中文可以再处理嘛



davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#52004/5/17 12:29:57
好的。
知道了他不支持中文。

只好再修理了。

谢谢1



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#62004/5/17 20:47:27
中文按拼音的先后次序排序(实际上是映射在码表里的先后位置)。

人工排序的话,最好给表增加一个排序列。如果需要排序的行较多,还应该给该列增加索引。



davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#72004/5/20 8:09:15
sql="select * from ANclass where classid="&cstr(classid)&" order by Nclass"

读出的数据顺序怎么是
11
12
13
2
3
4

怎么才能读出?
2
3
4
11
12
13

谢谢!



大当家

职务:普通成员
等级:3
金币:1.0
发贴:767
#82004/5/20 8:54:28
sql="select * from ANclass where classid="&cstr(classid)&" order by Nclass Asc"



davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#92004/5/20 10:16:51
扬扬在上个帖子中说
引用:
sql="select * from ANclass where classid="&cstr(classid)&" order by Nclass Asc"


这个我已试了,
结果还是
11
12
13
2
3
4


这是怎么回事?不应出现这种情况。



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#102004/5/20 10:28:20
你如果能用cint(nclass)不出错,那么就可以得到你想要的查询结果了。

还有呀,CSTR要它有什么用?

编辑历史:[此帖最近一次被 arhui 编辑过(编辑时间:2004-05-20 10:35:01)]

难人一个……

davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#112004/5/20 10:43:33
arhui在上个帖子中说
引用:
你如果能用cint(nclass)不出错,那么就可以得到你想要的查询结果了。

还有呀,CSTR要它有什么用?


不行
使用了cint
sql="select * from ANclass where classid="&classid&" order by cint(Nclass) Asc"

出现
Microsoft JET Database Engine 错误 '80040e07'
标准表达式中数据类型不匹配。
/index.asp,行 127


还有呀,CSTR要它有什么用?
没用,调试时使用的,忘改了。



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#122004/5/20 10:56:47
它不是数值型的,用CINT当然会出错了,中文是按照汉语拼音的方法来排序的,你要它按照你的方法排序,我看你还是改一下表结构吧。


难人一个……

davidoffice

职务:普通成员
等级:1
金币:0.0
发贴:34
#132004/5/20 11:03:13
如果要是数值直接使用
sql="select * from ANclass where classid="&classid&" order by Nclass Asc"
就可以了,不用cint。

搞定,谢谢!



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#142004/5/20 11:09:25
既然存储的是数值类型的数据,字段类型用字符串干嘛 ,把字段类型改为整形就行了。

另外,t-sql转换数据类型的函数与 vbscript 不同,不要混为一谈。你可以在联机丛书中查找有关convert的用法