由於近期的一點點工作,學習了一點點oracle的東西,僅記錄一點:
decode函式和sign函式配合在sql語句中做判斷。
decode() 語法:
decode(expression, compare1,value1, compare2, value2, .... ,defaultvalue)
意思很簡單,如果expression和comparen相等,則返回valuen,如果乙個都不相等,則返回defaultvalue.
乙個最最簡單的使用就是為了防止除數等於0,比如
select a/b from table;
如果b=0,則會發生 ora-01476: 除數為 0 錯誤,如果這樣寫:
select decode(b,0,0,a/b) from table;
如果b=0,則返回0,否則返回a/b。
很顯然,如果單單使用decode(),只能做相當於switch-case的功能,那麼比如我想判斷小於某數的情況呢?
sign(a-b), sign根據a-b和0做比較,大於,等於,小於分別返回1,0,-1,舉個例子,我想找所有小於10的b,如果大於10的統統返回100,可以這樣寫:
select decode(sign(b-10),-1,b,100) from table;
以上2點僅自娛自樂,很久沒有更新了。。。
oracle decode函式的用法
該函式可以接受可變的引數,具體引數情況如下 decode 條件,值1,翻譯值1,值2,翻譯值2,值n,翻譯值n,預設值 該函式的含義如下 if 條件 值1 return 翻譯值1 else if 條件 值2 return 翻譯值2 else if 條件 值n return 翻譯值n else ret...
Oracle DECODE函式的語法
oracle decode函式功能很強,下面就為您詳細介紹oracle decode函式的用法,希望可以讓您對oracle decode函式有更多的了解。oracle decode函式 oracle decode函式是oracle公司獨家提供的功能,它是乙個功能很強的函式。它雖然不是sql的標準,但...
Oracle decode函式的使用
今天看別人的sql時看這裡面還有decode 函式,以前從來沒接觸到,上網查了一下,還挺好用的乙個函式,寫下來希望對朋友們有幫助哈!這裡 decode 函式簡介 主要作用 將查詢結果翻譯成其他值 即以其他形式表現出來,以下舉例說明 使用方法 select decode columnname,值1,翻...