今天要用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中,約...