大众计算机学习网

专门提供各种电脑教程

SQL语句对结果随机排序

Admin | 2014-7-7 10:38:25 | 被阅次数 | 3738

  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条数据,那么就全部返回。