999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MySQL中CASE-WHEN的應用

2020-06-07 02:28:16劉磊林麗丹
電腦知識與技術 2020年35期
關鍵詞:問卷調查

劉磊 林麗丹

摘要:實際研發工作中經常需要寫各種 SQL 來統計線上的各種業務數據或者需要以查詢的字段作為條件進行數據過濾操作,使用 CASE-WHEN 能讓統計事半功倍,用好CASE-WHEN,解決的問題更廣泛,邏輯上更為緊湊。文章首先介紹了業務需求,接著給出了實現方案,然后提供了實例代碼,最后總結了應用場景。

關鍵詞: MySQL;CASE;問卷調查;應用場景

中圖分類號: TP311? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2020)35-0228-02

開放科學(資源服務)標識碼(OSID):

Application of Case-when in MySQL

LIU Lei1,LIN Li-dan 2

(1.He nan Police College,Zhengzhou 450000, China;2.Luo he Vocational Technology College, Luohe 462000, China)

Abstract: In the actual research and development work, it is often necessary to write all kinds of SQL to statistic all kinds of online business data or to perform data filtering operation under the condition of query-field. The use of case-when can double the result with half the effort and solve more extensive and logically more compact problems. This paper introduces the business requirements, and then gives the implementation scheme, and then provides the example code, finally summarizes the application scenario.

Key words:MySQL; CASE;questionnaire survey; application scenarios

1? 業務需求分析

開發一個問卷調查系統,實現參與調查人員回答問卷,系統后臺進行結果統計的功能,要求系統能夠建立問卷,參與調查人員對問卷進行回答,提交后系統能夠自動對調查結果進行統計分析。

為實現系統功能,設計有一個item表,該表為不同問題的投票結果表,字段為編號、投票選項編號、投票問題內容編號、任務編號、調查對象編號,其中投票選項編號為某個問題的某個選項的編號,投票問題內容編號對應另一個表subject的記錄,表subject為問題內容表,其中有編號、問題內容、題型、問題內容類型、適用對象類型五個字段,任務編號對應選擇調查小組、調查單位組成的任務表的記錄,調查對象編號對應調查單位的對象,包括班子和具體個人。

對問卷調查結果進行統計,查詢出單人、班子中每個問題的得分情況,該案例是一個典型的聚合統計的例子,首先想到的是應用group by語句對問題進行分組,然后需要解決的問題就是分調查單位、調查對象統計,這就需要應用case when語句了。

2 實現方案

2.1 CASE 表達式的寫法

CASE 表示式有簡單表達式和搜索表達式兩種。

1) 簡單 CASE 表達式

在MySql中格式:

case 要判斷的字段/表達式

when 常量1 then 要顯示的值1或語句1;(如果是語句要加分號)

when 常量2 then 要顯示的值2或語句2;

……

else? 要顯示的值n或語句n;

end

then后面如果是常量值不需要分號,如果是語句則要加分號。這個格式的用法類似java中的switch的效果,例如

CASE sex

WHEN? '1'? THEN? '男'

WHEN? '2'? THEN? '女'? ELSE? '其他'

END

2) 搜索 CASE 表達式

在MySql中:

case (case后什么都沒有,沒有需要判斷的東西)

when? 條件1 then 要顯示的值1或語句1;

when? 條件2 then 要顯示的值2或語句2;

……

else? ?要顯示的值n或語句n

End

這個格式的用法類似java中的多重if的效果,例如:

CASE WHEN sex = '1' THEN '男'

WHEN sex = '2' THEN '女' ELSE '其他'

END

2.2 注意要點

1)每個WHEN子句都具有排他性,也就是說如果執行到某個 WHEN 子句為真,則剩余的 WHEN 子句不會執行,所以為了引起不必要的麻煩,WHEN 子句要注意條件的互斥性。

2)如果對數據庫字段取別名,字段別名一定要接在END的后面,否則會報錯。

2.3 case when的主要應用場景

1)場景一:首先,case when可以應用在對某列數據需要做條件判斷輸出問題中,例如在汽車銷量中對銷量進行分類,單月銷量小于3000臺的為不及格,單月銷量在3000-5000臺的為一般,單月銷量在5000-10000臺的為較好,單月銷量在10000臺以上的為優秀,case when就可以在這種場景中進行應用。

2)場景二:其次,case when還可以與聚合函數一起,應用在分類統計方面,例如在汽車銷量表中對銷量進行分細分市場分月統計。

3 實際運用

3.1 case when用在對某列數據需要做條件判斷輸出問題

在設計數據庫的時候總是會把用戶的性別用int存儲('0'為女,'1'為男),但是怎么把它轉換成漢字顯示呢,比如投票系統的用戶表,可以用如下語句實現。

select name as ‘名字 (case sex when 0 then ‘女 else ‘男 end)as ‘性別 from vote.user;

再如投票系統中的問題表,其中的問題種類用int存儲為1、2、3、4,在獲取所有問題進行顯示時,可以用如下語句實現。

SELECT a.vs_id, a.vs_title,case when a.vs_kind = '1' THEN '(一)' WHEN a.vs_kind = '2' THEN '(二)' WHEN a.vs_kind = '3' THEN '(三)' WHEN a.vs_kind = '4' THEN '(四)' END vs_kind, b.opt_item, c.resp_item FROM vote_subject a LEFT JOIN (SELECT t.vs_id, group_concat(t.vo_id, '-', t.vo_option order by vo_order) opt_item FROM vote_option t GROUP BY t.vs_id) b ON a.vs_id = b.vs_id

3.2 case when與聚合函數一起用在分類統計方面

對問卷調查結果進行統計,查詢出某個人、班子中每個問題的得分情況,可以用如下語句實現

SELECT vsId,

sum(CASE when vsKind = '第一類' then VoteCoun end) `countA`,

sum(CASE when vsKind = '第二類' then VoteCoun end) `countB`,

sum(CASE when vsKind = '第三類' then VoteCoun end) `countC`

sum(CASE when vsKind = '第四類' then VoteCoun end) `countD`

from Option? ?where vsId <> 'Null'? ?group by vsId;

4 結論

在實際工作中根據業務場景不同來靈活使用CASE WHEN,在SQL中能熟練地使用CASE,需要記住CASE的語法格式, 可以結合Java中case的用法來記憶,三種情況,第一:SQL中的 CASE expression,相當于 Java 中的 switch(expression);第二:SQL中的 WHEN value1 THEN returnvalue1,相當于Java中的case value : statement;第三:SQL中的 ELSE defaultreturnvalue,相當于Java中的 default: statement。

參考文獻:

[1] 李大印.基于復雜規則的在線投票考核系統實現[J].電腦編程技巧與維護,2020(4):41-43,58.

[2] 梁軒,楊文躍.基于Web的在線測評系統的設計與實現[J].電腦知識與技術,2019,15(24):68-69,76.

[3] 季玉茹,王德忠.基于SSH的校園網上投票系統的設計[J].電腦知識與技術,2017,13(29):60-61.

【通聯編輯:唐一東】

猜你喜歡
問卷調查
學生對翻轉課堂綜合評價的調查研究
大學教育(2016年11期)2016-11-16 19:43:00
江蘇省中小企業融資現狀調查與思考
中國市場(2016年38期)2016-11-15 22:58:06
江蘇省產業結構調整與大學生就業相關性分析
價值工程(2016年29期)2016-11-14 02:39:40
日語本科專業校企協同育人機制的基礎性問卷調查分析
文教資料(2016年19期)2016-11-07 07:41:50
銅仁市學前教育專業新生科學素養現狀的調查
航海體育教學與公共體育教學的對比研究
體育時空(2016年8期)2016-10-25 19:26:06
職校學生手機使用狀況調查報告
基于問卷調查的防護頭盔佩戴熱舒適性研究
城中村改造問題及對策研究
現代園藝(2016年17期)2016-10-17 07:04:29
媒介融合背景下的分眾傳播與受眾反饋
今傳媒(2016年9期)2016-10-15 22:37:20
主站蜘蛛池模板: 精品日韩亚洲欧美高清a| 园内精品自拍视频在线播放| 天天摸天天操免费播放小视频| 一级毛片中文字幕 | 国产拍在线| 男女猛烈无遮挡午夜视频| 亚洲人成网站在线播放2019| 日韩午夜伦| 22sihu国产精品视频影视资讯| 亚洲免费人成影院| 成人综合久久综合| 欧亚日韩Av| 毛片视频网址| 日本亚洲欧美在线| 日本不卡在线播放| 国产波多野结衣中文在线播放| 亚洲精品卡2卡3卡4卡5卡区| 一区二区影院| 91在线精品免费免费播放| 亚洲免费毛片| 99国产在线视频| 亚洲AV人人澡人人双人| 亚洲人视频在线观看| 自拍偷拍欧美日韩| 欧美精品一二三区| 亚洲男人的天堂在线| 久久人体视频| 国产在线精品人成导航| 亚洲精品国产日韩无码AV永久免费网 | 欧美日韩免费在线视频| 亚洲国产高清精品线久久| 亚洲美女一区二区三区| 米奇精品一区二区三区| 亚洲成人在线网| 综合色亚洲| 亚洲成人福利网站| 成人亚洲天堂| 国产一区二区三区在线无码| 免费看一级毛片波多结衣| 久草热视频在线| 国产无码精品在线播放| 亚洲人成网站色7777| 国产主播一区二区三区| 国产91小视频| 国产精品毛片一区视频播| 亚洲91精品视频| 幺女国产一级毛片| 久久永久精品免费视频| 久久永久免费人妻精品| 免费精品一区二区h| 久久成人国产精品免费软件 | 欧洲免费精品视频在线| 国产成人亚洲精品色欲AV| 欧洲极品无码一区二区三区| 久久狠狠色噜噜狠狠狠狠97视色| 99性视频| 一本大道东京热无码av| 性欧美久久| 国产网友愉拍精品| 成年人福利视频| 成人国产免费| 99re精彩视频| 911亚洲精品| 免费三A级毛片视频| 久久综合丝袜长腿丝袜| 日韩中文精品亚洲第三区| 人妻一区二区三区无码精品一区| 思思热精品在线8| 精品91自产拍在线| 一区二区在线视频免费观看| 国产美女91视频| 免费看久久精品99| 日韩av在线直播| 九九精品在线观看| 激情网址在线观看| 亚洲欧美综合精品久久成人网| 亚洲成人在线免费| 99ri国产在线| 99视频免费观看| 国产国拍精品视频免费看 | 69视频国产| 在线另类稀缺国产呦|