日期: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个,有多少种情形呢?这是一个组合问题,一共有多少种的公式我已经忘掉了,我要按照感受写写看:
- SELECT * FROM Group
- WHERE (Pv>100000 AND UserCount>1000 AND PostCount>10000 AND CreateTime > 20070101)
- OR (Pv>100000 AND UserCount>1000 AND PostCount<10000 AND CreateTime < 20070101)
- OR (Pv>100000 AND UserCount<1000 AND PostCount>10000 AND CreateTime < 20070101)
这个Sql语句条件还行,但是我们的标题是n个条件m个条件成立,假如多了还这么写,恐怕就很累了,能不能改良呢?答案是必定的.
- SELECT * FROM Group
- WHERE
- (CASE Pv WHEN Pv>100000 THEN 1 ELSE 0 END) --这是PV的条件成立则为1,不然为0
- +(CASE UserCount WHEN UserCount > 1000 THEN 1 ELSE 0 END) --用户数条件
- +(CASE PostCount WHEN PostCount > 10000 THEN 1 ELSE 0 END) --帖子数条件
- +(CASE CreateTime WHEN CreateTime < 20070101 THEN 1 ELSE 0 END) --时间条件
- = 3
假如上面的三个表达式加起来值是3就阐明刚好满意三个条件,假如是两个条件就是等于2,假如扩大为n个条件m个条件成立也很简单写,很简单保护、改正.
这是一个sql条件语句的本领,但愿对你有效.
七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:SQL替换语句语法阐明
- ·下一篇文章:SQL Where子句的妙用
- ·中查找“sql条件语句利用实例”更多相关内容
- ·中查找“sql条件语句利用实例”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论