SQL Select语句完整的执行顺序:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
8、select 集合输出。
eg.获取新闻表(News)表中最近七天的数据,并将数据按浏览量(VisitedCount)排序,截取排行榜前6条。
方法一:
第一步:最近News表中最近七天的数据(AutoId:新闻编号,AddDate:发布时间):
select * from news where datediff(day,AddDate,getdate())<=7
第二步:按浏览量排序:
select * from news
where datediff(day,AddDate,getdate())<=7
order by VisitedCount desc
第三步:截取前6条:
select top 6 * from news
where datediff(day,AddDate,getdate())<=7
order by VisitedCount desc
上面便是结果了。
注意这句话意思绝不是:截取最近七天中间6条信息,再按浏览量排序。注意各个关键字在SQL语句中解释顺序。
上述语句还可以写为:
答案2:
select top 6 * from news
where AutoId in
(
select AutoId from news
where datediff(day,AddDate,getdate())<=7
)
order by VisitedCount desc
PS: DESC降序 ASC升序