首页 文章

在SQL Server中填充指定值范围的前导零字符串

提问于
浏览
0

我在Pad a string with leading zeros so it's 3 characters long in SQL Server 2008使用了答案

在我的情况下填充带前导零的列它是两个零,我使用这个:

RIGHT('0'+ISNULL(REPLACE(<columnName>, '"', ''),''),2)

数据范围从1到99,但也包括未知的'UNK'值,使用此方法截断 .

有没有办法绕过这个或者我应该在探索不同的解决方案,因为我在同一列中处理文本和数字?

干杯

Ĵ

2 回答

  • 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'
    
  • 0

    关于评论,请在下面添加@ bastos.sergio的回答:

    SELECT CASE isnumeric(Val) AND len(Val) = 1 THEN '0' + Val ELSE Val END
    

相关问题