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.
                        
It worked Now.
select lpad(Fixed_Length,length(Vari_Length),0) as newcolumn from mytable;