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...