首页 电脑 电脑学堂 查看内容

sql的几种常见查询方式

2011-4-12 11:26 564 0

摘要:   看了些资料,尝试了一些sql的几种常见查询方式,有些疑问,待解决  1 联合查询的连接方式  内联接,左右联接(inner join,left /right outer join) 很简单常用的联...
关键词: 查询 nbsp select 结果 雇员 时间 tablesample 运算符 方式 测试

  看了些资料,尝试了一些sql的几种常见查询方式,有些疑问,待解决  1 联合查询的连接方式  内联接,左右联接(inner join,left /right outer join) 很简单常用的联合查询方式。  2创建子查询  例1:select * from  ceshi  as e  where e.id  in  ( select ceshiid from ceshi1)  例2:select * from ceshi1 as e where exists  ( select * from ceshi1 e1 where  e.id=e1.id)  3创建复合查询  商业需求:a种雇员有两种休假时间 time1和time2,b种雇员有一种休假时间time2,  如下查询返回每个雇员休假的总时间  select  id ,  case type  when  1 then time1+time2  else time2  end  as paidhours   from ceshi  4聚合函数的查询  avg 求平均值 count 返回行数 max/min返回最大最小值sum等等  5使用pivot和unpivot运算符格式化数据的查询  例:select [0],[1]  from  (  select salariedFlag ,vacationHourses from gongzi  ) as h  pivot  (  avg(vacationHourses)  for salariedFlag in ([0], [1])  ) as pvt  这种函数测试:[0]列总是显示null  很郁闷,测试没得到想要的结果,正在研究中  6创建使用全文搜索的查询  相比tsql中=和like 两种查询条件运算符来说,contains和freetext 具有更高的查询效率,  但要启用全文索引http://www.xueit.com/html/2009-03/26_745_00.html  contains精确匹配 ,freetext 返回所有不精确匹配  如几十万条数据里用like查询的话可能需要几分钟的时间,而用后者却可能在几秒钟内完成查询结果  7使用tablesample字句限制返回的结果  (1)  select * from GG_XTRZ   tablesample(10 percent)返回10%的结果  (2)SELECT GNID  ,id  FROM GG_XTRZ  TABLESAMPLE (100 ROWS)返回100行结果  查阅资料,这种写法应该没错,可经测试总是不通过 很郁闷,这种方法也不是很常用,有待考察。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部