技术开发 频道

SQL Server数据查询基本方法的总结

  十 使用Like实现模糊查询

  基本语法:select * from table_Name where column like (匹配条件)

  说明:“%”匹配任意长度的(长度可以为0)字符串,“_”匹配任意单个字符,“[]”:匹配所给定范围或集合中的任意单个字符,“[^]”匹配所给定的不在所给定的集合或范围中的任意单个字符,通配符或字符串必须用单引号括起来

  示例:查询所有姓李的同学地信息

Select * from Student_TBL where SName like ‘李%’

   查询所有学生名字中第二个字为“冰”的同学的信息

Select * from Student_TBL where SName like ‘_冰%’

   查询所有编号中含有’e,t,y’字符的班级信息

Select * from Class_TBL where CNO like ‘[e,t,y]’

   查询所有编号中不含有’e,t,y’字符的班级信息

Select * from Class_TBL where CNO like ‘[^e,t,y]’

   十一 使用is null

  基本语法:

select * from table_Name where column is null

   说明:查询指定列为输入数据的数据行,通常用在where语句中

  示例:查询还没有分配班级的学生的信息

  十二 使用compute进行计算

  基本语法:select * from table_name where 查询条件 compute 聚合函数

  说明:用来计算总计或进行分组小计,总计或小计值作为附加行出现在查询结果中

  示例:计算在编号为‘001’班级的学生的信息并统计该班有多少个学生

Select * from Student_TBL where CNO=001’ compute count(*)

   十三 使用compute by分组查询结果

  基本语法:select * from table_Name [where..] order by column compute 聚合函数 by column

  说明:在使用compute by之前必须先使用order by 对要进行分组的列进行排序,注意,在oerder by 中进行排序的列的数量和顺序必须和compute by 后的项一样

  示例:根据不同班级分组统计各个班级学生的信息

Select * from Student_TBL order by CNO compute count(SNO) by CNO

   十四 使用group by

  基本语法:select * from table_name [where…] group by column

  说明:在select 子句中使用聚合函数时,group by计算每组的汇总值,使用group by子句时,在select 子句中出现的列名或者出现在聚合函数中,或者出现在group by 子句后面,否则会抱错,另外group by后面还可以恩 with cube||rollup,

  示例:统计每个班级有多少学生,不显示学生的信息,只显示统计信息

Select CNO,count(SNO) from Student_TBL group by CNO

   十五使用having语句

  基本语法:select * from table_name [where …] group by column having …

  说明:having子句用于限定对组或者聚合函数的查询条件,该子句常用于group by 子句后面,在查询结果分组后对组判断是否满足查询条件,在分组之前可以用where语句判断查询条件,使用where比使用having更有效,因为它先将不满足条件的行过滤掉,从而减少了要进行分组的行数

  示例:分组统计除编号为‘001’外所有班级学生的人数

Select CNO,count(SNO) from Student_TBL group by CNO having CNO<>001

  

0
相关文章