大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

SQL语句对结果随机排序

Admin | 2014-7-7 10:38:25 | ReadNums | 3191 | 标签 数据库Sql,VFP,Access | 打印本页
     

  SQL语句如果是明确给出字段,那么,在排序上是很方便的,下面我们看一条简单的语句就明白了。

  Select id,name,examtype from exambase order by id asc

  上述语句的含义是:从exambase这个数据表中筛选出(查找)id,name,examtype这三个字段,找到记录之后,按照 id 进行排序,排序的时候使用asc方式排序,asc指的是升序排序。与之相对于的是,desc,这个是降序排序。

  在上述的基础上,我们如何给这条语句加上查询条件呢?也很简单。看下面的代码。

  Select id,name,examtype from exambase where examtype='单选题目'  order by id asc

  其中,examtype='单选题目' 这就是所添加的查询条件。当然,查询条件和排序,我们都可以根据修改随时修改,下面我们再看一例子:

  Select id,name,examtype from exambase where examtype='单选题目'  and  id>100  order by id,examtype desc

  请你仔细看看,条件是不是有两个条件了?同时,排序也有两个。先按id降序排序,再按examtype降序排序。这就相当于,以examtype为分组降序排序,通过id降序排序。

  最后,我们再来看一条随机排序,用来进行排序的依据,是随机排序,不是按照字段来排序。

  Select id,name,examtype from exambase where examtype='单选题目'  and  id>100  order by newid()

  不知道大家注意到了没有,排序依据是order by newid(),它不是要查询的数据表里面的字段。这个指的是自动生成的序号,以此进行排序。

  还有更复杂的,再看最后一句:

  Select top 66 id,name,examtype  where examtype='单选题目'  and  id>100  order by newid()

  其中的top 66指的是,只查找前66条记录。如果查询到超过66记录,那么只返回66条。如果小于等于66条数据,那么就全部返回。


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日