我已经在Pad a string with leading zeros so it's 3 characters long in SQL Server 2008
处使用了答案在我的情况下填充带前导零的列,它是两个零,我用这个:
RIGHT('0'+ISNULL(REPLACE(<columnName>, '"', ''),''),2)
数据范围从1到99,但也包括&#39; UNK&#39;对于使用此方法截断的未知。
有没有办法解决这个问题,还是应该在我处理同一列中的文字和数字时探索不同的解决方案?
干杯
Ĵ
答案 0 :(得分:2)
(第二次修订) 试试这个:
SELECT CASE WHEN LEN(ISNULL(<columnName>, '')) > 1
THEN ISNULL(<columnName>, '')
ELSE RIGHT ('00'+ ISNULL(<columnName>, ''), 2)
END
示例输入/输出:
Input NULL / Ouput '00'
Input 'UNK' / Ouput 'UNK'
Input '1' / Ouput '01'
Input '99' / Ouput '99'
答案 1 :(得分:0)
关于@ bastos.sergio的回答:
SELECT CASE isnumeric(Val) AND len(Val) = 1 THEN '0' + Val ELSE Val END