Home » SQL & PL/SQL » SQL & PL/SQL » decode
decode [message #39275] Tue, 02 July 2002 17:57 Go to next message
Tom
Messages: 67
Registered: June 1998
Member
Can anyone tell me about the usage of 'DECODE' ??
Re: decode [message #39276 is a reply to message #39275] Tue, 02 July 2002 18:39 Go to previous messageGo to next message
wangsanjun
Messages: 13
Registered: June 2002
Junior Member
DECODE(condition,v1,r1,v2,r2,...vn,rn,default) means as the following:
if condition=v1 then
return(r1);
elsif condition=v2 then
return(r2);
elsif condition=v3 then
return(r3);
.....
else
return(default);
end if;
Re: decode [message #39278 is a reply to message #39275] Tue, 02 July 2002 19:11 Go to previous message
Rozario Mariadassou
Messages: 12
Registered: March 2002
Junior Member
Decode is a very powerful function. For eg, if I want a cross tabulated output with yrwise sales in each coln for the last 3 yrs, the sql can be written as
select unit_code, sum(decode(to_char(trunc(docdate,'yy'),'yyyy'),'2000',fxnetamt,0)) order_00,
sum(decode(to_char(trunc(docdate,'yy'),'yyyy'),'2001',fxnetamt,0)) order_01,
sum(decode(to_char(trunc(docdate,'yy'),'yyyy'),'2002',fxnetamt,0)) order_02
from dohead group by unit_code
What this does is if (to_char(trunc(docdate,'yy'),'yyyy') = '2000', then it will add order_qty otherwise it will add 0.
Previous Topic: date function
Next Topic: sum function
Goto Forum:
  


Current Time: Tue Apr 23 02:57:10 CDT 2024