I have one table in Hive.
Vari_Length Fixed_Length
12345 12345
1234 12345
123 12345
12 12345
1 12345
Here I am generating one new column by comparing the length of both the column.
i.e.
Vari_Length Fixed_Length newcolumn
12345 12345 12345
1234 12345 01234
123 12345 00123
12 12345 00012
1 12345 00001
here if Vari_Length length is less then the length of Fixed_Length then I am padding leading zeroes in Vari_Length values and generating the newColumn.
Here Fixed_Length length is fixed every-time it will be 5 but Vari_Length length is not fixed.
I am using below query to generate the output.
select
case when
length(Vari_Length)='5'
THEN Fixed_Length
when length(Vari_Length)='4'
THEN concate('0',Fixed_Length)
when length(Vari_Length)='3'
then concate('00',Fixed_Length)
when length(Vari_Length)='2'
then concate('000',Fixed_Length)
when length(Vari_Length)='1'
then concate('0000',Fixed_Length)
end as newcolumn from mytable
But here multiple case statement are there, So I am trying to optimize the query and wondering if is there any other way to achive the same using hive function without using multiple case statements.
Kindly Suggest.