PadLeft function in T-SQL

后端 未结 17 2828
挽巷
挽巷 2020-11-27 03:44

I have the following table A:

id
----
1
2
12
123
1234

I need to left-pad the id values with zero\'s:

id
----
0         


        
17条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-27 03:56

    My solution is not efficient but helped me in situation where the values (bank cheque numbers and wire transfer ref no.) were stored as varchar where some entries had alpha numeric values with them and I had to pad if length is smaller than 6 chars.

    Thought to share if someone comes across same situation

    declare @minlen int = 6
    declare @str varchar(20)
    
    set @str = '123'
    select case when len(@str) < @minlen then REPLICATE('0',@minlen-len(@str))+@str else @str end
    --Ans: 000123
    
    set @str = '1234'
    select case when len(@str) < @minlen then REPLICATE('0',@minlen-len(@str))+@str else @str end
    --Ans: 001234
    
    set @str = '123456'
    select case when len(@str) < @minlen then REPLICATE('0',@minlen-len(@str))+@str else @str end
    --Ans: 123456
    
    set @str = '123456789'
    select case when len(@str) < @minlen then REPLICATE('0',@minlen-len(@str))+@str else @str end
    --Ans: 123456789
    
    set @str = '123456789'
    select case when len(@str) < @minlen then REPLICATE('0',@minlen-len(@str))+@str else @str end
    --Ans: 123456789
    
    
    set @str = 'NEFT 123456789'
    select case when len(@str) < @minlen then REPLICATE('0',@minlen-len(@str))+@str else @str end
    --Ans: NEFT 123456789
    

提交回复
热议问题