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
主站蜘蛛池模板: 国产精品视频第一专区| 无遮挡国产高潮视频免费观看| 亚洲一区毛片| 91色综合综合热五月激情| 国产麻豆va精品视频| 欧美一级视频免费| 白浆视频在线观看| 91娇喘视频| 欧美午夜在线视频| 亚洲国产天堂久久综合| 91精品免费高清在线| 午夜精品久久久久久久无码软件| 久久永久视频| 欧美色综合久久| 亚洲最大福利网站| 亚洲视频在线青青| 国产成人亚洲精品蜜芽影院| 成人精品视频一区二区在线| 欧洲精品视频在线观看| 午夜毛片免费观看视频 | 亚瑟天堂久久一区二区影院| 亚洲国产无码有码| 国产黄色视频综合| 天天操精品| 国产成人精品免费av| 无码福利日韩神码福利片| 久久免费成人| 成人国产一区二区三区| 人妻一区二区三区无码精品一区| 97国产一区二区精品久久呦| 亚洲欧美日韩高清综合678| 国产精品人莉莉成在线播放| 噜噜噜久久| 日韩天堂网| 毛片在线区| 亚洲国模精品一区| 亚洲视频无码| 日韩高清无码免费| 国产精品女熟高潮视频| 亚洲国产日韩视频观看| 伊人福利视频| 狠狠久久综合伊人不卡| 在线免费亚洲无码视频| 日韩大乳视频中文字幕| 综合成人国产| 国产亚洲精品97在线观看| 欧美亚洲另类在线观看| 无码国内精品人妻少妇蜜桃视频| 性色在线视频精品| AV无码一区二区三区四区| 制服丝袜在线视频香蕉| 91久久国产热精品免费| 欧美日韩国产综合视频在线观看| 精品撒尿视频一区二区三区| 国产一区二区三区在线精品专区| 国产成人盗摄精品| 久久免费精品琪琪| 色婷婷在线播放| 精品视频一区二区三区在线播| 欧美精品H在线播放| 亚洲伊人天堂| 国产乱子伦无码精品小说 | 免费又爽又刺激高潮网址| 国产免费a级片| 亚洲日韩AV无码精品| 亚洲欧美日韩综合二区三区| 成人午夜网址| 久久永久视频| 国产一线在线| 国产交换配偶在线视频| 婷婷五月在线| 久久久精品无码一区二区三区| 国产爽妇精品| 亚洲第一视频免费在线| 国产成人亚洲精品色欲AV| 国产精品浪潮Av| 在线毛片网站| 日本免费a视频| 欧美国产日产一区二区| 色欲国产一区二区日韩欧美| 国产素人在线| 69免费在线视频|