用0填充此字符串部分的最佳方法

乔·史塔尼斯

这是该字符串当前外观的2个示例:

   6731-121-1
   9552-3-1

这就是我想让他们看起来像的样子

   0006731-121-1
   0009552-003-1

因此,我希望在第一个“-”之前用7个零填充,然后在第一个和第二个“-”之间用3个零填充。

在SQL SELECT语句中完成此操作的最佳方法是什么。

 SELECT   RIGHT('0000000'
               + ISNULL(
                           LEFT(OE.exception_id, CHARINDEX('-', OE.exception_id)
                                                 - 1) ,
                           ''
                       ) ,7) + '-'
         + SUBSTRING(OE.exception_id, CHARINDEX('-', ( OE.exception_id )), 10) exception_id 
约翰·卡佩莱蒂

ParseName()可能是这里的一个选项

Declare @YourTable Table ([YourCol] varchar(50))
Insert Into @YourTable Values 
 ('6731-121-1')
,('9552-3-1')

Select *
      ,NewVal = right('0000000'+parsename(replace(YourCol,'-','.'),3),7)
               +'-'
               +right('000'+parsename(replace(YourCol,'-','.'),2),3)
               +'-'
               +parsename(replace(YourCol,'-','.'),1)
 From @YourTable

退货

YourCol     NewVal
6731-121-1  0006731-121-1
9552-3-1    0009552-003-1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章