Oracle中的case when的使用

2021-06-18 20:11:53 字數 808 閱讀 2047

今天要用sql實現乙個小小的邏輯,總之呢,需要用到一些判斷條件,所以準備使用一下

case when的用法,但是由於之前只寫過case when else end單條語句,沒有寫過巢狀,而且

感覺sql寫起來也不好除錯,所以在網上找了下資料。

第一步,先寫乙個簡單的巢狀測試一下:

select case when 1=1 then 

case when 2<3 then

'2a'

else

'2b'

endelse '1a'

endfrom dual;

執行完畢,顯示"2a"。於是在一步步往上面加,根據其語法,我們可以觀察得出每乙個case都要對應乙個end結束符,else條件可要

可不要,與程式語言裡面的if和else是相似的,那麼現在實現乙個這樣的演算法:

if(i > a && i< b)else

}elseelse

}}else

看看這個夠複雜了吧,下面是實現後的sql**:

case when (ai) then 

case when i-a>b-i then

case when b-i>0 then

60else

b-iend

else

case when i-a>0 then

60else

i-aend

endelse 0

end

只要注意格式就不會有問題了。

case when的判斷順序 case when

這篇文章在借鑑前人的基礎上,進行了驗證,感謝前人的分享 一 case when的使用方法 case具有兩種格式。簡單case函式和case搜尋函式。第一種 格式 簡單case函式 格式說明 case 列名 when 條件值1 then 選項1 when 條件值2 then 選項2.else 預設值 ...

oracle中的角色

oracle 中的角色 一 何為角色?我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題 如果有一組人,他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。有乙個很好的解決辦法就 是 角色。角色是一組許可權的集合,將角...

Oracle中的約束

資料的完整性用於確保資料庫資料遵從一定的商業和邏輯規則,在oracle中,資料完整性可以使用約束 觸發器 應用程式 過程 函式 三種方法來實現,在這三種方法中,因為約束易於維護,並且具有最好的效能,所以作為維護資料完整性的首選。1.約束 約束用於確保資料庫資料滿足特定的商業規則。在oracle中,約...