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