最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2011年09月09日 09:27:09   作者:  
我們都知道SQL中適用case when then來轉化數(shù)據(jù)庫中的信息 比如 select (case sex when 0 then '男' else '女' end) AS sex from studentInfo

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

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

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

答案是: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)計方式) 而統(tǒng)計行數(shù)據(jù)的條數(shù)

我們一步步來理解上面語句

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

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

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

重點來了,如果我把count(*) 中的 *號換成任一列名呢? 如count(province) 會怎樣?

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

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

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

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

即統(tǒng)計男女數(shù)量范圍限定在浙江省 再精簡一下即下面

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

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

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

小結:當然實現(xiàn)有很多種方法 可以多個子查詢拼接起來也不無可厚非。我這只是一種思路

補充:case when then 知識點

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

如果默認范圍如果沒全包含則為空 像上圖的廣東省為空

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

相關文章

  • 詳解sql中exists和in的語法與區(qū)別

    詳解sql中exists和in的語法與區(qū)別

    這篇文章主要介紹了sql中exists和in的語法與區(qū)別,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SQL SERVER 的SQL語句優(yōu)化方式小結

    SQL SERVER 的SQL語句優(yōu)化方式小結

    千辛萬苦,終于把數(shù)據(jù)庫服務器的CPU從超過50%(開5個程序線程)乃至100%(開10個程序線程)降低到了5%。摸索到了一些門道,總結一下
    2009-08-08
  • SQL 存儲過程基礎語法之一

    SQL 存儲過程基礎語法之一

    創(chuàng)建存儲過程,存儲過程是保存起來的可以接受和返回用戶提供的參數(shù)的 Transact-SQL 語句的集合。
    2009-11-11
  • SQL語句執(zhí)行超時引發(fā)網(wǎng)站首頁訪問故障問題

    SQL語句執(zhí)行超時引發(fā)網(wǎng)站首頁訪問故障問題

    由于獲取網(wǎng)站首頁列表的 SQL 語句出現(xiàn)突發(fā)的查詢超時問題,造成訪問網(wǎng)站首頁時出現(xiàn) 500 錯誤,在故障期間記錄了大量錯誤,小編給大家分享到腳本之家平臺,感興趣的朋友一起看看吧
    2020-02-02
  • SQL恢復master數(shù)據(jù)庫方法 只有mdf文件的數(shù)據(jù)庫如何恢復

    SQL恢復master數(shù)據(jù)庫方法 只有mdf文件的數(shù)據(jù)庫如何恢復

    這篇文章主要為大家詳細介紹了SQL恢復master數(shù)據(jù)庫方法,還分析了只有mdf文件的數(shù)據(jù)庫如何進行恢復的情況,也就是沒有l(wèi)og文件的數(shù)據(jù)庫文件恢復方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • SQL報錯注入之updatexml的實現(xiàn)

    SQL報錯注入之updatexml的實現(xiàn)

    updatexml函數(shù)通過輸入不符合XPATH格式的數(shù)據(jù)來觸發(fā)報錯,并利用這一點進行SQL注入,通過分析報錯信息,可以判斷是否存在注入點,并逐步爆出數(shù)據(jù)庫名、表名、字段名以及敏感數(shù)據(jù),感興趣的可以了解一下
    2024-10-10
  • SQL?DCL數(shù)據(jù)控制語言的使用

    SQL?DCL數(shù)據(jù)控制語言的使用

    本文主要介紹了SQL?DCL數(shù)據(jù)控制語言的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Sqlserver 常用日期時間函數(shù)

    Sqlserver 常用日期時間函數(shù)

    Sqlserver中經(jīng)常要操作一些時間類型的字段轉換,我又不太記得住,記在這里方便自己以后要用的時候尋找,望對大家也有幫助.
    2010-06-06
  • sql?server如何去除數(shù)據(jù)中的一些無用的空格

    sql?server如何去除數(shù)據(jù)中的一些無用的空格

    這篇文章主要介紹了sql?server去除數(shù)據(jù)中的一些無用的空格,本文給大家提到了一些常用的函數(shù),結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • SqlServer實現(xiàn)類似Oracle的before觸發(fā)器示例

    SqlServer實現(xiàn)類似Oracle的before觸發(fā)器示例

    本節(jié)主要介紹了SqlServer如何實現(xiàn)類似Oracle的before觸發(fā)器,需要的朋友可以參考下
    2014-08-08

最新評論

台东市| 长岛县| 于都县| 闸北区| 花莲县| 绩溪县| 高清| 阳春市| 北安市| 岗巴县| 台前县| 西贡区| 锦州市| 江门市| 温宿县| 九江县| 鸡泽县| 泰州市| 丹江口市| 洮南市| 沅江市| 简阳市| 泽普县| 永宁县| 宝清县| 建宁县| 桂阳县| 宿迁市| 杭锦旗| 浑源县| 健康| 乐东| 泽库县| 察隅县| 丹巴县| 福州市| 米脂县| 兰州市| 大余县| 西吉县| 弋阳县|