case表示式可以在sql中實現if-then-else型的邏輯,oracle database 9i及以上版本支援case表示式,case工作方式與decode()類似
有兩種型別的case表示式:
1. 簡單case表示式,使用表示式確定返回值
case search_expression
when expression1 then result1
when expression2 then result2
when expressionn then resultn
else default_result
end* search_expression是待求值的表示式
* expression1、expression2、...、expressionn是要與search_expression進行比較的表示式
* result1、result2、...、resultn是(每乙個可能出現的表示式所對應的)返回值,如果expression1的值等於search_expression,則返回result1,以此類推
* default_result是無法找到匹配的表示式時的預設返回值
例:select product_id,product_type_id,
case product_type_id
when 1 then 'book'
when 2 then 'video'
when 3 then '***'
when 4 then 'cd'
else 'magazine'
endfrom products;
product_id product_type_id caseprod
1 1 book
2 1 book
3 2 video
4 2 video
5 2 video
6 2 video
7 3 ***
8 3 ***
9 4 cd
10 4 cd
11 4 cd
12 magazine
2. 搜尋case表示式,使用條件確定返回值
case
when condition1 then result1
when condition2 then result2
when conditionn then resultn
else default_result
end* condition1、condition2、...、conditionn是待求值的表示式
* result1、result2、...、resultn是返回值(對應每個可能出現的條件),如果condition 1為真,則返回result1,以此類推
* default_result是當沒有為真的條件時返回的預設結果
例:select product_id,product_type_id,
case
when product_type_id=1 then 'book'
when product_type_id=2 then 'video'
when product_type_id=3 then '***'
when product_type_id=4 then 'cd'
else 'magazine'
endfrom products;
product_id product_type_id caseprod
1 1 book
2 1 book
3 2 video
4 2 video
5 2 video
6 2 video
7 3 ***
8 3 ***
9 4 cd
10 4 cd
11 4 cd
12 magazine
SQL基礎 函式 謂詞 CASE表示式
numeric m,n 資料型別 m位數 包含小數字 n位小數字 sql sever select cast current timestamp as date as cur date oracle select current date from dual db2 select current d...
decode 和SQL語法case表示式
方法一 使用sql99標準通用語法中的case表示式,將職位是分析員的,工資 1000 職位是經理的,工資 800 職位是其它的,工資 400 select ename 姓名 job 職位 sal 原工資 case job when analyst then sal 1000 when manage...
case表示式詳解
格式一 case 條件表示式 when 條件表示式結果1 then 語句段1 when 條件表示式結果2 then 語句段2 when 條件表示式結果n then 語句段n else 條件表示式結果 end 格式二 case when 條件表示式1 then 語句段1 when 條件表示式2 the...