首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

今天大年初一,2012年第一天出现了纠结的有关问题

2012-03-22 
今天大年初一,2012年第一天出现了纠结的问题。SQL codeselect sr_date, sr_name,sr_title,sr_text from tes

今天大年初一,2012年第一天出现了纠结的问题。

SQL code
select sr_date, sr_name,sr_title,sr_text from testTB --后面是这三种方案。--1,这样用 --where sr_date >='2010-10-10' and sr_date <='2010-11-10' and sr_date <>''--Group By sr_date--order by  sr_date desc--2,是这样用? --Group By sr_date --having sr_date >='2010-10-10' and sr_date <='2010-11-10' and sr_date <>'' --order by  sr_date desc --3,还是这样用?--where sr_date >='2010-10-10' and sr_date <='2010-11-10'--Group By sr_date--having   sr_date <>'' --order by  sr_date desc


代码执行的顺序是否是:from-----where ---group by---having----order by -----select?
运行三种代码结果都一样,都能得到我想要的结果,但是纠结在不知道选哪种好?
大家帮忙看看选哪种好,为什么,或者有更好的方案。

人在,每五分刷一次贴,有满意的答案,很快会结贴。
恭祝大家新年快乐,恭喜发财!

[解决办法]
SQL code
SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、使用order by对结果集进行排序。 另外:一个查询语句各个部分的执行顺序: --8)  SELECT (9) DISTINCT (11) <TOP_specification> <select_list> --(1)  FROM <left_table> --(3)    <join_type> JOIN <right_table> --(2)      ON <join_condition> --(4)  WHERE <where_condition> --(5)  GROUP BY <group_by_list> --(6)  WITH {CUBE | ROLLUP} --(7)  HAVING <having_condition> --(10) ORDER BY <order_by_list>
[解决办法]
1、from子句组装来自不同数据源的数据; 
2、where子句基于指定的条件对记录行进行筛选; 
3、group by子句将数据划分为多个分组; 
4、使用聚集函数进行计算; 
5、使用having子句筛选分组; 
6、计算所有的表达式; 
7、使用order by对结果集进行排序。 

一个查询语句各个部分的执行顺序: 
--8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list> 
--(1) FROM <left_table> 
--(3) <join_type> JOIN <right_table> 
--(2) ON <join_condition> 
--(4) WHERE <where_condition> 
--(5) GROUP BY <group_by_list> 
--(6) WITH {CUBE | ROLLUP} 
--(7) HAVING <having_condition> 
--(10) ORDER BY <order_by_list>
[解决办法]
sr_date >= ... and sr_date <= ...

sr_date <> '' 是不是多余了?!
[解决办法]
要明白sql的执行顺序。

热点排行