SQL中Case的使用方法(二)

2021-08-25 17:23:32 字數 1540 閱讀 5118

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

有如下資料

國家(country

)性別(

***)人口(

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

函式來完成這個功能的例子

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,這個公司有個規定,女職員的工資必須高於塊。如果用

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的使用方法

二,用乙個sql語句完成不同條件的分組。有如下資料 國家 country 性別 人口 population 中國1 340中國 2260美國1 45美國255 加拿大1 51加拿大249 英國140英國260 按照國家和性別進行分組,得出結果如下 國家男 女中國340260 美國45 55加拿大 5...