国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

香港云服务器
服務器之家 - 數據庫 - 數據庫技術 - SQL中case?when?then?else?end用法實例

SQL中case?when?then?else?end用法實例

2023-07-30 12:33未知服務器之家 數據庫技術

一、闡述 case when then else end 可以理解為java的if-else if -else。可以理解為流程控制語句或條件控制語句。可以實現資料獲取的時候,可以更多的條件和自定義邏輯。 適用情景 對已知的數據庫中數據,按照自己的邏輯,進行自定義分

一、闡述

case when then else end 可以理解為java的if-else if -else。可以理解為流程控制語句或條件控制語句。可以實現資料獲取的時候,可以更多的條件和自定義邏輯。

適用情景

  • 對已知的數據庫中數據,按照自己的邏輯,進行自定義分組和數據分析
  • 用此條件控制語句,實現自定義條件分組
  • 條件控制語句中嵌套函數達到理想的計算效果

二、具體使用

1.已知數據按照另外一種方式進行分組,分析。

有如下數據:(為了看得更清楚,我并沒有使用國家代碼,而是直接用國家名作為primary key)

國家(country)

人口(population)

中國

600

美國

100

加拿大

100

英國

200

法國

300

日本

250

德國

200

墨西哥

50

印度

250

根據這個國家人口數據,統計亞洲和北美洲的人口數量。應該得到下面這個結果。

人口

亞洲

1100

北美洲

250

其他

700

想要解決這個問題,假如使用case函數,sql代碼如下:

01select?sum(population),
02??????????? case country
03??????????? when '中國'???? then'亞洲'
04??????????? when '印度'???? then'亞洲'
05??????????? when '日本'???? then'亞洲'
06??????????? when '美國'???? then'北美洲'
07??????????? when '加拿大'? then'北美洲'
08??????????? when '墨西哥'? then'北美洲'
09??????????? else '其他' end
10??????????? from???table_a
11??????????? group by case country
12??????????? when '中國'???? then'亞洲'
13??????????? when '印度'???? then'亞洲'
14??????????? when '日本'???? then'亞洲'
15??????????? when '美國'???? then'北美洲'
16??????????? when '加拿大'? then'北美洲'
17??????????? when '墨西哥'? then'北美洲'
18??????????? else '其他' end;

2.用一個sql語句完成不同條件的分組。

有如下數據

國家(country)

性別(sex)

人口(population)

中國

1

340

中國

2

260

美國

1

45

美國

2

55

加拿大

1

51

加拿大

2

49

英國

1

40

英國

2

60

按照國家和性別進行分組,得出結果如下

國家

中國

340

260

美國

45

55

加拿大

51

49

英國

40

60

普通情況下,用union也可以實現用一條語句進行查詢。但是那樣增加消耗(兩個select部分),而且sql語句會比較長。

下面是一個是用case函數來完成這個功能的例子

1select country,
2??????????? sum( case when sex = '1' then
3??????????? population else 0 end),? --男性人口
4??????????? sum( case when sex = '2' then
5??????????? population else 0 end)?? --女性人口
6??????????? from?table_a
7??????????? group by country;

這樣我們使用select,完成對二維表的輸出形式,充分顯示了case函數的強大。

補充:對case when 的理解總結

1、then和else后,只能寫一條輸出語句且輸出結果就是新生成列的值;when 后的條件判斷可以有多條,且可以多個字段聯合判斷;end 后的輸出也可以有多條,但必須有一個是新生成列的字段名; [常規用法:select 后到from前,直接使用case when] (例1)

2、when 后多條件判斷用and連接(例3)

3、case when 巧妙用法   [order by 后用case when] [count()中用case when]   (例2)

4、group by 后用case when   (在參考里)

5、case when,如果有多個,如果一條記錄滿足第一個case when就不會再去執行后面的case when,所以要想保證某個case when一定執行,就把她寫在最前面。

總結

免費資源網 - http://www.jfrwli.cn/uploads/allimg/r2mt1mdykqh

延伸 · 閱讀

精彩推薦
103
主站蜘蛛池模板: 狠狠操狠狠干 | 亚洲日日摸夜夜夜夜夜爽小说 | 午夜网址 | 黄毛片视频 | www.xxx在线观看 | 国产成人免费视频网站高清观看视频 | 看a网站| 九九热精品在线 | 久久手机免费视频 | 午夜桃色 | 激情久久网 | 国产精品久久久久永久免费观看 | 国产精品一二区 | 欧美性久久 | 亚洲国产精品成人女人久久久 | 久色视频在线观看 | 亚洲欧美另类久久久精品2019 | 激情婷婷丁香 | 福利片在线免费观看 | 久热国产视频 | 亚洲成人一区在线 | 精品久草 | 欧美黑人一级爽快片淫片高清 | 一区二区三区久久久久久 | 日本久久久久久 | 午夜午夜精品一区二区三区文 | 操操操影院 | 成人片在线播放 | 欧美九九| 欧美精品一区二区三区在线播放 | 天天操综合网 | 欧美中文字幕一区二区三区亚洲 | 欧美激情一区二区三级高清视频 | 欧美日韩成人在线视频 | 国产成人综合一区二区三区 | 亚洲男女视频在线观看 | 免费观看电视在线高清视频 | 亚洲视频1区 | 亚洲国产精品99久久久久久久久 | h片在线 | 国产日韩精品一区二区 |