自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

sql條件語(yǔ)句使用實(shí)例

數(shù)據(jù)庫(kù) SQL Server
下文以實(shí)例的形式為您詳細(xì)介紹了sql條件語(yǔ)句的使用方法,供您參考,如果您對(duì)sql條件語(yǔ)句方面感興趣的話,不妨一看。

sql條件語(yǔ)句是sql語(yǔ)句中非常重要的,在我們平時(shí)的數(shù)據(jù)庫(kù)使用中經(jīng)常會(huì)用得到,在處理一些具體問(wèn)題時(shí),就可以體現(xiàn)出sql條件語(yǔ)句的優(yōu)勢(shì)了。

假定博客園要在首頁(yè)為群組開(kāi)辟一塊空間,推廣小組,小組能在首頁(yè)顯示的條件有四個(gè):

1.       頁(yè)面點(diǎn)擊量大于10w

2.       小組人數(shù)大于1000

3.       小組帖子數(shù)大于10000

4.       小組在2007年之前創(chuàng)建

現(xiàn)在假定4個(gè)條件都滿足的小組只有兩個(gè),太少了,推廣位可以推廣10個(gè)小組;這時(shí)候運(yùn)營(yíng)人員要求這4個(gè)條件中滿足3個(gè)但是第4個(gè)條件不滿足的小組算符合條件的小組,如果4個(gè)條件都滿足就認(rèn)為這個(gè)小組太火了,不需要在首頁(yè)推廣它了。業(yè)務(wù)邏輯想清楚了,下一步就該寫(xiě)代碼了,數(shù)據(jù)邏輯層的代碼的任務(wù)假定交給我了,我要考慮滿足4個(gè)條件中3個(gè)成立的sql怎么寫(xiě)。

為了敘事方便,我們假如小組表的名字為Group,相關(guān)的條件字段是Pv,UserCount,PostCount,CreateTime:分別表示小組的點(diǎn)擊量,人數(shù),帖子數(shù),創(chuàng)建時(shí)間.

寫(xiě)sql語(yǔ)句,上面的四個(gè)條件滿足至少3個(gè),有多少種情況呢?這是一個(gè)組合問(wèn)題,一共有多少種的公式我已經(jīng)忘記了,我要根據(jù)感覺(jué)寫(xiě)寫(xiě)看:

  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

這個(gè)Sql語(yǔ)句條件還行,但是我們的題目是n個(gè)條件m個(gè)條件成立,如果多了還這么寫(xiě),恐怕就很累了,能不能改進(jìn)呢?答案是肯定的。

  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) --用戶數(shù)條件  
  5. +(CASE PostCount WHEN PostCount > 10000 THEN 1 ELSE 0 END) --帖子數(shù)條件  
  6. +(CASE CreateTime WHEN CreateTime < 20070101 THEN 1 ELSE 0 END) --時(shí)間條件  
  7. = 3 

 如果上面的三個(gè)表達(dá)式加起來(lái)值是3就說(shuō)明恰好滿足三個(gè)條件,如果是兩個(gè)條件就是等于2,如果擴(kuò)展為n個(gè)條件m個(gè)條件成立也很容易寫(xiě),很容易維護(hù)、修改。 

這是一個(gè)sql條件語(yǔ)句的技巧,希望對(duì)你有用。

 

 

【編輯推薦】

SQL Where子句的妙用

解讀SQL嵌套子查詢

SQL強(qiáng)類(lèi)型查詢的實(shí)現(xiàn)

SQL查詢效率的討論

SQL動(dòng)態(tài)查詢的示例

責(zé)任編輯:段燃 來(lái)源: 博客園
相關(guān)推薦

2010-09-17 14:48:28

SQL條件語(yǔ)句

2010-09-07 14:56:49

SQL語(yǔ)句CASE WHEN

2010-09-03 14:56:12

SQLSELECT語(yǔ)句

2010-09-13 17:11:42

sql server

2010-10-21 14:27:35

SQL Server時(shí)

2010-09-09 16:34:19

SQL循環(huán)while

2010-09-25 16:42:45

sql語(yǔ)句

2021-06-09 10:45:12

JavaScript開(kāi)發(fā) 編程

2010-09-10 14:33:32

SQL循環(huán)語(yǔ)句

2010-11-11 11:37:22

SQL SELECT語(yǔ)

2010-09-25 11:02:33

SQL主鍵

2010-09-17 16:53:14

SQL中CREATE

2010-09-14 10:16:57

sql server

2011-04-27 16:34:06

withSQL Server

2010-09-03 13:21:01

SQL刪除

2011-08-18 14:25:26

OracleEXPLAIN PLA

2010-09-07 10:56:58

SQL語(yǔ)句

2010-09-25 16:32:02

SQL語(yǔ)句

2010-09-07 13:50:41

SQL語(yǔ)句

2010-09-07 11:24:25

SQL語(yǔ)句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)