CASE WHEN FREQUENCY in (64,66) then
‘MONTHLY on ’ ||
rtrim(
CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN ‘1,’ ELSE null END ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END ,power(2,30)),power(2,30),‘2,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,29)),power(2,29),‘3,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,28)),power(2,28),‘4,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,27)),power(2,27),‘5,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,26)),power(2,26),‘6,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,25)),power(2,31),‘7,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,24)),power(2,31),‘8,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,23)),power(2,31),‘9,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,22)),power(2,31),‘10,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,21)),power(2,31),‘11,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,20)),power(2,31),‘12,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,19)),power(2,31),‘13,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,18)),power(2,31),‘14,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,17)),power(2,31),‘15,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,16)),power(2,31),‘16,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,15)),power(2,31),‘17,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,14)),power(2,31),‘18,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,13)),power(2,31),‘19,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,12)),power(2,31),‘20,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,11)),power(2,31),‘21,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,10)),power(2,31),‘22,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,9)),power(2,31),‘23,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,8)),power(2,31),‘24,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,7)),power(2,31),‘25,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,6)),power(2,31),‘26,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,5)),power(2,31),‘27,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,4)),power(2,31),‘28,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,3)),power(2,31),‘29,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,2)),power(2,31),‘30,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,1)),power(2,31),‘31,’,null) ||
decode(bitand(CASE WHEN SIGN(2147483648 - DAY_TIMING) < 1 THEN DAY_TIMING -2147483648 ELSE DAY_TIMING END,power(2,0)),power(2,31),‘LAST,’,null) ,’,')