例子:
在乙個表(tablename)中由於乙個字段(flag)的取值不同, 對另乙個字段(value)分別作多次sum.
selectid, nvl(sum(
case
whenflagis null
thenvalue
end), 0) value_a, nvl(sum(
case
whenflagisnot null
thenvalue
end), 0) value_b
fromtablename
group byid
結果如下:
id value_a value_b
1 100010 0
4 100000 100000
5 0 100000
另外:1. case
select logid,userid,logtime,url,description,(
case
whenoperatetype = 0
then'新增'
whenoperatetype=1
then'修改'
else'刪除'
end) from log
2.decode的寫法:
selectlogid,userid,logtime,url,description,
decode(operatetype,0,'新增',1,'修改','刪除') operationname
fromlog
語句巢狀:
selecta.trhcd ,b.kon_sei_gaku
fromkkym010 ajoinbsht100 bona.trhcd = b.trhcd1
andb.sei_**_ymd =
(selectmax(sei_**_ymd)
frombsht100
wherebsht100.sei_**_ymd < (
casewhena.sei_**_ddis null thento_char(to_number(bsht100.sei_**_ymd)+1)
whena.sei_**_ddis not null then(decode(a.sei_**_dd, 99, '20061201', '20051220'))
end)
andbsht100.trhcd1 = a.trhcd )
wherea.tkskbnis not null anda.uri_kj_*** = 1order bya.trhcd
oracle裡面如何寫case語句
如下 select logid,userid,logtime,url,description,case operatetype when operatetype 0 then 新增 when operatetype 1 then 修改 else 刪除 end case from log 1.case...
oracle裡面如何寫case語句
出處 csdn 技術社群 oracle 基礎和管理問題 如下 select logid,userid,logtime,url,description,case operatetype when operatetype 0 then 新增 when operatetype 1 then 修改 else...
oracle裡面如何寫case語句
如下 select logid,userid,logtime,url,description,case operatetype when operatetype 0 then 新增 when operatetype 1 then 修改 else 刪除 end case from log 1.case...