SQL中Case的使用方法

2021-07-16 12:31:56 字數 1235 閱讀 9593

二,用乙個sql語句完成不同條件的分組。

有如下資料 

國家(country)

性別(***)

人口(population)中國1

340中國

2260美國1

45美國255

加拿大1

51加拿大249

英國140英國260

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

女中國340260

美國45

55加拿大

5149

英國4060

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

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

select country,

sum( case

when *** = '1'

then

population else 0 end), --男性人口

sum( case

when *** = '2'

then

population else 0 end) --女性人口

from table_a

group

by country;

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

三,在check中使用case函式。

在check中使用case函式在很多情況下都是非常不錯的解決方法。可能有很多人根本就不用check,那麼我建議你在看過下面的例子之後也嘗試一下在sql中使用check。 

下面我們來舉個例子 

公司a,這個公司有個規定,女職員的工資必須高於1000塊。如果用check和case來表現的話,如下所示

constraint check_salary check

( case

when *** = '2'

then

case

when salary > 1000

then 1 else 0 end

else 1 end = 1 )

如果單純使用check,如下所示 

constraint check_salary check

( *** = '2'

and salary > 1000 )

女職員的條件倒是符合了,男職員就無法輸入了

SQL中的CASE使用方法

case具有兩種格式。簡單case函式和case搜尋函式。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 這兩種方式,可以實現相同的...

SQL中的CASE使用方法

case具有兩種格式。簡單case函式和case搜尋函式。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 這兩種方式,可以實現相同的...

SQL中的CASE使用方法

case具有兩種格式。簡單case函式和case搜尋函式。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 這兩種方式,可以實現相同的...