数据库排序问题(写出SQL语句)

数据库排序问题(写出SQL语句),第1张

字段依次写在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.")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9421114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存