将字段依次写在order by 后面即可 , 中间用逗号隔开。
view plaincopy to clipboardprint?select * from 表 order by time , name
select * from 表 order by time asc , name asc
select * from 表 order by time desc , name desc
select * from 表 order by time asc , name desc
select * from 表 order by time desc , name asc
(注: asc 表示升序 , desc表示降序 , 未明确写明排序方式时默认是升序)
与之类似的语法是 group by , 按多个字段分组时 , 也是依次将多个字段写在group by 的后面 , 并用逗号隔开 , 范例如下:
view plaincopy to clipboardprint?select time , name , sum(*) from 表 group by time , name
假如你要排序的字段名为 mynum,如果 mynum 是 int 型,直接排序即可: order by mynum
如果 mynum 是 string 型,但存的是数值,并且要出现你说的自然排序效果的话,要这样做: order by mynum+0
如果字段值开始都是数字的话,那么使用Val函数来排序最为便捷。例如运行SQL语句:
select * from 表名order by val(排序字段名)
如果表中只含上述数据 那么该语句返回下列排序效果
说明
Val函数 返回包含于字符串内的数字,字符串中是一个适当类型的数值。
在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。
下面的返回值为 1615198:
Val("1615 198th Street N.E.")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)