Oracle sql語法中decode函式的用法

2021-06-28 17:11:04 字數 855 閱讀 6345

decode(條件,值1,結果1,值2,結果2,值3,結果3,... 值n,結果n,預設值)

改函式的解釋:

if 條件=值1 then

return(結果1)

elsif 條件=值2 then

return(結果2)

......

elsif 條件=值n then

return(結果n)

else

return(預設值)

end if

簡單示例:

比賽勝負表t_result

要求查詢獲得結果

則可以是使用以下語句查詢到正確結果

select

name 姓名,sum(decode(t.result,'勝',1,0)) 勝,sum(decode(t.result,'負',1,0)) 負

from

t_result t

group by name

order by 勝 desc,負 asc

對以上的sql語句簡單的解釋一下:

sum(decode(t.result,'勝',1,0))

-- 表中的result欄位如果值為「勝」,則decode的結果值為1,否則取預設值0作為decode函式的結果值

-- sum函式求和

-- 列名改為勝

sum(decode(t.result,'負',1,0)) 負  -- (類似上)

oracle sql相關語法

case when 簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end這兩種方式,可以實現相同的功能。簡單case函式的寫法相對比較簡潔...

ORACLE SQL資料庫基本查詢語法

select是最基礎的語句 1.例如 select sno sname from student select 是選擇哪些列 from從哪些列裡選擇哪些資料 紅色部分是選擇特定的列或者在紅色部分給乙個 這樣的標誌符,這個標誌符的意思是查詢這個表的全部的列和資料。2.使用數 算符 我們可以看的出sno...

比較Oracle SQL中的IN EXISTS

在oracle sql中取資料時有時要用到in 和 exists 那麼他們有什麼區別呢?1 效能上的比較 比如select from t1 where x in select y from t2 執行的過程相當於 select from t1,select distinct y from t2 t2...