我有一个varchar类型的列,其文本类似于20171126-401-9-4496
。
该字符串有4个部分,每个部分的长度固定:
第1-8位数字
第2-4位数字
第3-2位数字
第4-4位数字
我想用'0'填充字符串的第二部分和第三部分,以使文本变为20171126-0401-09-4496
满足每个部分的固定长度要求。我尝试使用SUBSTRING
和CHARINDEX
函数,但无法获得所需的结果。如何解决这个问题?
最佳答案
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/