alex_lo

导航

2012年11月6日 #

SQL 练习编写能力(1) (GROUP BY HAVING)

摘要: 1. 用一条SQL语句查询出每门课都大于80分的学生姓名name kechengfenshu 张三 语文81张三 数学75李四 语文76李四 数学90王五 语文81王五 数学100王五 英语90 方法一: 思路:如果能获得一张表,由学生姓名,语文成绩,数学成绩,英语成绩的表,剩下的就是在WHERE条件中筛选及可以获得想要的结果。 具体办法:通过自连接的办法,以“姓名”为连接条件,自连接三次,便可以获得包含又姓名和三门课程成绩的数据行。虽然可以得到想要的数据列。但会有很多冗余重复列! 点评:此方法是根据题目,依题解题,中规中矩! 不过多张表连接非常耗费时间。而且SQL语句也比较复杂,需要... 阅读全文

posted @ 2012-11-06 18:05 alex_lo 阅读(687) 评论(0) 推荐(1) 编辑

SQL 基础 :Distinct 和 order by 关系。(Distinct 自动排序)

摘要: 今天本来是测试一段代码,然后用到Distinct关键字,查看执行计划之后,突然发现过程中有对表进行sort! 上网搜索和加之验证得出如下结果: 结论: 1.使用distinct 关键字后会对distinct后面用到的关键字进行默认的升序排序. 2.可以使用order by 来改变排序规则. 3.使用distinct后,出现在order by 中的字段必须要写在 SELECT 句中,非充要条件。 求问各大神:如何消除distinct自动排序,及为什么要进行排序,还有distinct是如何做到消除重复列的! 另: //Wrong SQLSELECT DISTINCT field_... 阅读全文

posted @ 2012-11-06 17:14 alex_lo 阅读(20731) 评论(0) 推荐(1) 编辑