当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-01-25 23:11:00  来源:本站整理

sql条件语句利用实例[MSSQL防范]

赞助商链接



  本文“sql条件语句利用实例[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

sql条件语句是sql语句中非常重要的,在我们平常的数据库利用中常常会用得到,在处理一些具体问题时,便可以表现出sql条件语句的上风了.

假定博客园要在首页为群组开辟一块空间,奉行小组,小组能在首页显示的条件有四个:

1.       页面点击量大于10w

2.       小组人数大于1000

3.       小组帖子数大于10000

4.       小组在2007年之前成立

目前假定4个条件都满意的小组只有两个,太少了,奉行位可以奉行10个小组;这时刻运营人员要求这4个条件中满意3个但是第4个条件不满意的小组算符合条件的小组,假如4个条件都满意就认为这个小组太火了,不需求在首页奉行它了.业务逻辑想清楚了,下一步就该写代码了,数据逻辑层的代码的任务假定交给我了,我要考虑满意4个条件中3个成立的sql怎么写.

为了叙事便利,我们假定小组表的名字为Group,相关的条件字段是Pv,UserCount,PostCount,CreateTime:辨别表示小组的点击量,人数,帖子数,成立时间.

写sql语句,上面的四个条件满意至少3个,有多少种情形呢?这是一个组合问题,一共有多少种的公式我已经忘掉了,我要按照感受写写看:

  1. SELECT * FROM Group  
  2. WHERE  (Pv>100000 AND UserCount>1000 AND PostCount>10000 AND CreateTime > 20070101)   
  3. OR (Pv>100000 AND UserCount>1000 AND PostCount<10000 AND CreateTime < 20070101)  
  4. OR (Pv>100000 AND UserCount<1000 AND PostCount>10000 AND CreateTime < 20070101

这个Sql语句条件还行,但是我们的标题是n个条件m个条件成立,假如多了还这么写,恐怕就很累了,能不能改良呢?答案是必定的.

  1. SELECT * FROM Group  
  2. WHERE   
  3. (CASE Pv WHEN Pv>100000 THEN 1 ELSE 0 END) --这是PV的条件成立则为1,不然为0  
  4. +(CASE UserCount WHEN UserCount > 1000 THEN 1 ELSE 0 END) --用户数条件  
  5. +(CASE PostCount WHEN PostCount > 10000 THEN 1 ELSE 0 END) --帖子数条件  
  6. +(CASE CreateTime WHEN CreateTime < 20070101 THEN 1 ELSE 0 END) --时间条件  
  7. = 3 

假如上面的三个表达式加起来值是3就阐明刚好满意三个条件,假如是两个条件就是等于2,假如扩大为n个条件m个条件成立也很简单写,很简单保护、改正. 

这是一个sql条件语句的本领,但愿对你有效.

 

 

七道奇为您推荐以下文章:

  • sql条件语句利用实例
  • <b>SQL条件语句实例</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .