SQL Server 7.0 入门(三)
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
组建立详细记录结果数据集(象SELECT),它也可为每组产生总的记录(象GROUP BY)。 在COMPUT BY中,定义BY子句不是必要的。如果没有定义BY子句,则认为整个表为一个组,并且只有两个结果数据集产生,一个拥有所有详细记录,另一个只有一行,它拥有总记录。 注意:当在COMPUTE中使用BY时,则要求在所有组合列中包含ORDER BY。 Cube和Rollup操作 CUBE和ROLLUP操作可比简单的GROUP BY产生更多的聚合值。在产生交叉标签报告(cross tab reports)时,这些操作非常有用。如果查询使用n个组合列,则有2n个计算聚合的组合。 从多个表中访问数据 我们已讨论了如何访问单个表中的数据。从多个表中访问数据也是可能的。从多个表中访问数据称为连接表(joining a table)。 1、 CROSS JOIN(笛卡尔积) CROSS JOIN是简单地、不加任何约束条件地把表组合。CROSS JOIN后结果的行数是连接前两个表行数的乘积。如果对两个分别有好几千行的表进行连接,则结果是不可想象的。 2、 INNER JOIN INNER JOIN是组合两个表最常用的方法。INNER JOIN是基于一个判别式进行的,这个判别式称为连接条件。连接条件和WHERE子句一起定义。连接条件由来自两个表中的列组成,并使用一个比较条件来对列的值进行比较。通过比较的值包含在结果数据集中,以下是Inner JOIN的语法: 语法1:(ANSI 92) Select <select_list> FROM <table1> INNER JOIN <table2> ON <table1>.<column name> = <table2>.<column name> 语法2: Select <select_list> FROM <table1>,<table2> WHERE <table1>.<column name> = <table2>.<column name> 在FROM 子句中可为表定义别名,并在任何地方都可用别名代替真名。 注意:如果作为连接条件的列中有空值,则空值不能和任何值匹配,因此结果中不包含有空值的行。 3、 Left Outer JOIN 在Inner JOIN中,只有在两个表中匹配的行才能在结果数据集中。但在Left Outer JOIN中,所有左边表中的行都出现在结果数据集中,如果左边表中的某一行在右边表中没有匹配的行,则以空值取代右边表中的值和它连接。 语法如下:(ANSI 92) Select <select_list> FROM <table1> LEFT OUTER JOIN <table2> ON <table1>.<column name> = <table2>.<column name> 4、 Right Outer JOIN Right Out JOIN和Left Outer JOIN相似,不同的是把右边的表作为外部表(所有右边表中的行包含在结果数据集中)。 语法如下: Select <select_list> FROM <table1> RIGHT OUTER JOIN <table2> ON <table1>.<column name> = <table2>.<column name> 5、 Full Outer JOIN 在Full Outer JOIN中,所有两个表中的行都包含在结果数据集中。 语法如下: Select <select_list> FROM <table1> FULL OUTER JOIN <table2> ON <table1>.<column name> = <table2>.<column name> Case语句 当对不同条件产生不同的结果值时,可使用Case语句。 Case语句计算所有定义的条件,并按条件是否为真而返回结果。 语法如下: CASE [<input_expression>] WHEN <when_expression> THEN <result_expression> [ELSE <else_expression>] END Input_expression是任何有效的SQL Server表达式或布尔表达式。 When_expression是任何有效的SQL Server表达式或布尔表达式。这个表达式和Input_e |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 动态SQL四种类型的语句格式下一篇: Sql表数据操作
关于SQL Server 7.0 入门(三)的所有评论