我有一个varchar类型的列,其文本类似于20171126-401-9-4496
该字符串有4个部分,每个部分的长度固定:

第1-8位数字

第2-4位数字

第3-2位数字

第4-4位数字

我想用'0'填充字符串的第二部分和第三部分,以使文本变为
20171126-0401-09-4496满足每个部分的固定长度要求。我尝试使用SUBSTRINGCHARINDEX函数,但无法获得所需的结果。如何解决这个问题?

最佳答案

PARSENAME骇客的绝佳时机!

SELECT PARSENAME(REPLACE(MyColumn,'-','.'),4)+'-'+
       RIGHT('0000'+PARSENAME(REPLACE(MyColumn,'-','.'),3),4)+'-'+
       RIGHT('00'+PARSENAME(REPLACE(MyColumn,'-','.'),2),2)+'-'+
       PARSENAME(REPLACE(MyColumn,'-','.'),1)

关于sql - 如何在SQL中将零填充到子字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47559945/

10-12 01:05