文档详情

[MSSQL] - SELECT语句使用大全.docx

发布:2017-08-04约1.06万字共10页下载文档
文本预览下载声明
SELECT语句使用大全虽然 SELECT 语句的完整语法比较复杂,但是大多数 SELECT 语句都描述结果集的四个主要属性1、结果集中的列的数量和属性。2、从中检索结果集数据的表,以及这些表之间的所有逻辑关系。3、为了符合 SELECT 语句的要求,源表中的行所必须达到的条件。不符合条件的行会被忽略。4、结果集的行的排列顺序。它的主要子句可归纳如下:SELECT select_list --描述结果集的列INTO new_table_name --指定使用结果集来创建新表FROM table_list??? --包含从中检索到结果集数据的表的列表[返回结果集的对象]。[ WHERE search_conditions ] --WHERE 子句是一个筛选,它定义了源表中的行要满足 SELECT 语句的要求所必须达到的条件[ GROUP BY group_by_list ] --根据 group_by_list 列中的值将结果集分成组[ HAVING search_conditions ]??? --结果集的附加筛选[ ORDER BY order_list [ ASC | DESC ] ]??? --结果集的附加筛选一、使用选择列表  1、使用 *号来选择所有列;使用“[表名|别名]。[字段]”选取特定的列。  2、AS 子句可用来更改结果集列的名称或为派生列分配名称,也可以使用空格代替    如: SELECT Name AS Name1,Name??? Name2 FROM Product ORDER BY Name ASC  3、使用 DISTINCT 消除重复项    如:select distinct [Year] from A  4、使用 TOP 和 PERCENT 限制结果集数量    TOP ( expression ) [ PERCENT ] [ WITH TIES ]??? --expression数量、PERCENT按百分比返回数据、WITH TIES返回排序与最后一行并列的行。    如:获取成绩前三名的同学    select top 3 * from Score order by Num desc --不考虑成绩并列    select top 3 WITH TIES * from Score order by Num desc --可解决成绩并列的问题  5、选择列表中的计算值??    选择的列不但可以包括数据表列,还可以包括计算值,这些结果集列被称为派生列。    计算并且包括以下运算:    对数值列或常量使用算术运算符或函数进行的计算和运算。如SUM(),COUNT(),AVG()等。    数据类型转换.如CAST(ProductID AS VARCHAR(10)) 。    CASE 函数。如    select ID,[name],Case Sex when m then 男 else 女 end from Student    --根据SEX的值输出性别信息  6、子查询。    select ID,[name],(Select(sum) from Score S where S.SID=A.ID ) AllScore from Student A    --获取学生的基本信息和总成绩。  7、使用INTO。使用INTO 将会把选择的数据插入到指定的表中而不返回数据集。    如: select ID,[name],(Select(sum) from Score S where S.SID=A.ID ) INTO #T??? Student      --将查询的结果装入临时表T中。二、使用 FROM 子句  1、使用表别名    SELECT 语句的可读性可通过为表指定别名来提高,别名也称为相关名称或范围变量。分配表别名时,可以使用 AS 关键字,也可以不使用:   table_name AS table alias 或 table_name table_alias  2、使用 PIVOT 和 UNPIVOT [SQL2005有效]    可以使用 PIVOT 和 UNPIVOT 关系运算符对表值表达式进行操作以获得另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来转换表值表达式,并在必要时对最终输出中所需的任何其余的列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。    PIVOT示例:    SELECT * FROM [StuSources] pivot(sum(chengji) for kecheng??? in([语文],[数学],[历史])) as prv??? --将行转换为列    SELECT Ve
显示全部
相似文档