二,用乙個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...