#navi(ORACLE) *DECODE 関数 [#n8ca860e] ※ Decode関数は、Oracle 独自関数のため、標準の CASE 式で記述した方が移植性の点で優れる。(性能は不明。) ※ Oracle 8 までは、CASE 式がサポートされていないため、Decode 関数を使用する。 field1 = '10' の件数を数える select sum(decode(field1,'10',1,0)) FROM table1 select count(field1) FROM table1 where field1 ='10' と同じだが select sum(decode(field1,'10',1,0)), sum(decode(field1,'20',1,0)) FROM table1 の様な書き方ができるので、集計表示などで便利。 field2 が 1 なら '男' 、それ以外なら '女' と出力する。 select decode (field2,1,'男','女') from table2 ; field2 が 1 なら '男' 、2 なら'女'、それ以外なら'不明'と出力する。 select decode (field2,1,'男',2,'女','不明') from table2 ; ** CASE 式による書き直し [#zc23d2e1] 上記の例 select sum(decode(field1,'10',1,0)), sum(decode(field1,'20',1,0)) FROM table1; を、CASE 式にて書き直してみると、 select sum(case when field1='10' then 1 else 0 end), sum(case when field1='20' then 1 else 0 end) FROM table1; となります。 #vote(参考になった[14],参考にならなかった[2]) #vote(参考になった[15],参考にならなかった[2])