91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL CASE 的用法

發布時間:2020-06-24 06:43:17 來源:網絡 閱讀:351 作者:筆下生輝 欄目:MySQL數據庫
  1. --簡單case函數

    case sex

      when '1' then '男'

      when '2' then '女’

      else '其他' end


    --case搜索函數

    case when sex = '1' then '男'

       when sex = '2' then '女'

       else '其他' end  



這兩種方式,可以實現相同的功能。簡單case函數的寫法相對比較簡潔,但是和case搜索函數相比,功能方面會有些限制,比如寫判定式。

還有一個需要注重的問題,case函數只返回第一個符合條件的值,剩下的case部分將會被自動忽略。

比如說,下面這段sql,你永遠無法得到“第二類”這個結果:


case when col_1 in ('a','b') then '第一類'
   when col_1 in ('a') then '第二類'
   else '其他' end  

-------------------------------------------------------------------------------------------------------------------


2.批量更新數據

--假設狀態只有3個選項,把所有FStatus=3的更新為1,FStatus=88的更新為5,FStatus=99的更新為9,

update T_SUF_Barcode set FStatus=(case FStatus

                     when '3' then '1' 

 when '88' then '55'

 else FStatus  end) 

 where   FBarcode  between '180121702150001' and '180121702153000'

----------------------------------------------------------------------------------------------------------------


3.將條碼表中的狀態用中文表示


select fstatus from T_SUF_Barcode t1   where   FBarcode  between '180121702150001' and '180121702153000'

--------------------------------------------------------------------------------------------------------------------

fstatus

1

...

5

...

5

9

...

---------------------------------------------------------------------------------------------------------------------


select t1.FBarcode, (case t1.FStatus

                   when  1 then '正常'

                   when  5 then '未知'

                   when  9 then '作廢' end)狀態

 from T_SUF_Barcode t1

 where   FBarcode  between '180121702150001' and '180121702153000'


FBarcode狀態

180121702150001正常

180121702150002...

180121702150003 未知

180121702150004...

180121702150011作廢

180121702150012...




4.將sum與case結合使用,可以實現分段統計。
     如果現在希望將上表中各種狀態的條碼進行統計,sql語句如下:


select

   sum(case t1.FStatus when 1 then 1  end)正常,

   sum(case t1.FStatus when 5 then 2  end)未知,

   sum(case  when t1.FStatus !=1 and t1.FStatus!=5 then 1  end)作廢

from T_SUF_Barcode t1  where   FBarcode  between '180121702150001' and '180121702153000'


--sum求和,當為5時,更新為2,并求和符合條件的2。這里正常,未知,作廢符合條件的各有1000個數據。


正常 未知          作廢

1000 2000(1000*2)   1000


               --------------------------------------------

   

select

   count(case t1.FStatus when 1 then 1  end)正常,

   count(case t1.FStatus when 5 then 1  end)未知,

   count(case  when t1.FStatus !=1 and t1.FStatus!=5 then 1  end)作廢

from T_SUF_Barcode t1  where   FBarcode  between '180121702150001' and '180121702153000'


--統計符合條件的個數。


正常 未知 作廢

1000 1000 1000


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴桥县| 龙南县| 田东县| 新龙县| 新邵县| 哈密市| 敦煌市| 潼关县| 墨玉县| 晋州市| 二手房| 安图县| 巧家县| 塘沽区| 蓬安县| 乌拉特后旗| 合肥市| 颍上县| 江口县| 来安县| 汶川县| 大同县| 茶陵县| 徐水县| 金溪县| 赤壁市| 会宁县| 青州市| 增城市| 永川市| 墨竹工卡县| 遂昌县| 灯塔市| 凤山市| 葵青区| 永登县| 修文县| 颍上县| 晋中市| 琼海市| 鸡东县|