Eu tenho uma tabela com a estrutura abaixo e dados de exemplo:
create table CUSTOMER_TEST
(
customer_num Number,
rel_one Number,
rel_two Number,
rel_three Number,
rel_four Number
)
Customer_num Rel_one Rel_two Rel_three Rel_four
--------------- ----------- ------------- -------------- --------------
1 7 12 1000 5
2 2 1 0 12
3 12 99 13 0
O resultado desejado é este:
Customer_num Rel_one Rel_two Rel_three Rel_four Relation_Code
--------------- ----------- ------------- -------------- -------------- ***************
1 7 12 1000 5 L07R12C99S05
2 2 1 0 12 L02R01C00S12
3 12 99 13 0 L12R99C13S00
O que escrevi é isso:
select customer_num,
rel_one ,
rel_two,
rel_three,
rel_four,
'L' ||
case
when rel_one > 99 then '99'
else lpad( rel_one,2,0) end ||
'R' ||
case
when rel_two > 99 then '99'
else lpad( rel_two,2,0) end ||
'C' ||
case
when rel_three > 99 then '99'
else lpad( rel_three,2,0) end ||
'S' ||
case
when rel_four > 99 then '99'
else lpad( rel_four,2,0) end as relation_code
from customer_test ;
Alguém tem uma ideia melhor? em vez de usar essa instrução muito case ..
desde já, obrigado
Espero que nenhum valor possa ser NULL ou negativo.