国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL集合函數(shù)中case when then 使用技巧

2024-08-31 00:58:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

那么在集合函數(shù)中它有什么用呢 ?

假設(shè)數(shù)據(jù)庫(kù)有一張表名為student的表。

SQL集合函數(shù)中case when then 使用技巧

如果現(xiàn)在要你根據(jù)這張表,查出江西省男女個(gè)數(shù),廣東省男生個(gè)數(shù),浙江省男女個(gè)數(shù) 怎么寫(xiě)SQL語(yǔ)句?即要生成下結(jié)果表

SQL集合函數(shù)中case when then 使用技巧

答案是:select sex ,count ( case province when '廣東省' then '廣東省' end )as 廣東省 ,count ( case province when '江西省' then '江西省' end )as 江西省 ,count ( case province when '浙江省' then '浙江省' end )as 浙江省 from student group by sex

count()函數(shù)即根據(jù)給定的范圍和group by(統(tǒng)計(jì)方式) 而統(tǒng)計(jì)行數(shù)據(jù)的條數(shù)

我們一步步來(lái)理解上面語(yǔ)句

1.  select sex from student (查詢數(shù)據(jù)表中的存在的男女條數(shù))

SQL集合函數(shù)中case when then 使用技巧

2.select sex, count (*) as num from student group by sex  (查詢表中男女?dāng)?shù)量)

SQL集合函數(shù)中case when then 使用技巧

3.select sex ,province, count (*)as num from student group by sex,province (查詢各省男女?dāng)?shù)量)

SQL集合函數(shù)中case when then 使用技巧

重點(diǎn)來(lái)了,如果我把count(*) 中的 *號(hào)換成任一列名呢? 如count(province) 會(huì)怎樣?

4.select sex ,province, count (province)as num from student group by sex,province (查詢各省男女?dāng)?shù)量)

結(jié)果跟上圖一樣:這說(shuō)明換不換都一樣。又有count (province)等價(jià)于 count(case province when '浙江省' then '浙江省' else province end )

但是如果我們縮小范圍呢即count(case province when '浙江省' then '浙江省' end ) 那么請(qǐng)看下面

5.select sex ,province, count ( case province when '浙江省' then '浙江省' end )as num from student group by sex,province

SQL集合函數(shù)中case when then 使用技巧

即統(tǒng)計(jì)男女?dāng)?shù)量范圍限定在浙江省 再精簡(jiǎn)一下即下面

6.select sex, count ( case province when '浙江省' then '浙江省' end ) as 浙江省 from student group by sex

SQL集合函數(shù)中case when then 使用技巧

已經(jīng)接近我們的要求了,現(xiàn)在只要加上另幾個(gè)字段就是了

7.select sex ,count ( case province when '廣東省' then '廣東省' end )as 廣東省 ,count ( case province when '江西省' then '江西省' end )as 江西省 ,count ( case province when '浙江省' then '浙江省' end )as 浙江省 from student group by sex

SQL集合函數(shù)中case when then 使用技巧

小結(jié):當(dāng)然實(shí)現(xiàn)有很多種方法 可以多個(gè)子查詢拼接起來(lái)也不無(wú)可厚非。我這只是一種思路

補(bǔ)充:case when then 知識(shí)點(diǎn)

(1) select (case province when '浙江省' then '浙江' when '江西省' then '江西' end  ) as 省份 from student

SQL集合函數(shù)中case when then 使用技巧

如果默認(rèn)范圍如果沒(méi)全包含則為空 像上圖的廣東省為空

(2)select (case province when '浙江省' then '浙江' when '江西省' then '江西' else province end  ) as 省份 from student

SQL集合函數(shù)中case when then 使用技巧

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 九龙城区| 闽侯县| 思南县| 和顺县| 深泽县| 达拉特旗| 新野县| 子洲县| 谷城县| 无极县| 兴和县| 莱芜市| 新巴尔虎左旗| 梨树县| 阿拉善右旗| 新津县| 东乡族自治县| 庆元县| 麻栗坡县| 潼关县| 炎陵县| 河南省| 上蔡县| 四子王旗| 玉溪市| 峡江县| 福贡县| 巨鹿县| 南宁市| 太仆寺旗| 鹤山市| 天全县| 固原市| 长治县| 鄂温| 潼关县| 鄂托克前旗| 麦盖提县| 昭觉县| 日土县| 东乌珠穆沁旗|