Tsql 子字符串并将前导零添加到字符串值

Tsql 子字符串并将前导零添加到字符串值,tsql,sql-server-2008-r2,substring,Tsql,Sql Server 2008 R2,Substring,大家好–我需要一些帮助,在字符串中添加前导零 我在论坛上四处看看,但没有找到任何适合我的情况 列中的字符串格式如下:“INV-ACC-180一些说明等” “INV-ACC-180”位的格式始终相同,但说明可能有所不同 挑战是“180”。它需要有4个前导零,所以显示为0180。i、 e“INV-ACC-0180一些说明等” 某些记录可能看起来像“INV-ACC-80某些说明等”。在这种情况下,新的正确格式应为“INV-ACC-0080一些说明等” 非常感谢 180是否作为单独的值存储? 在这种情况

大家好–我需要一些帮助,在字符串中添加前导零

我在论坛上四处看看,但没有找到任何适合我的情况

列中的字符串格式如下:“INV-ACC-180一些说明等”

“INV-ACC-180”位的格式始终相同,但说明可能有所不同

挑战是“180”。它需要有4个前导零,所以显示为0180。i、 e“INV-ACC-0180一些说明等”

某些记录可能看起来像“INV-ACC-80某些说明等”。在这种情况下,新的正确格式应为“INV-ACC-0080一些说明等”


非常感谢

180是否作为单独的值存储? 在这种情况下,您可以使用以下方法创建0180:

RIGHT('0000' + mynum, 4)
如果输入的是完整的字符串:

‘INV-ACC-' + RIGHT('0000'+substring(myinput,9,charindex(' ',myinput)-9),4) +substring(myinput,charindex(' '),1000)

谢谢,但它不太管用:(charindex缺少一个参数,所以我添加了“myinputstring”然后它没有返回所需的结果。你是对的,我已经更正了该语句。子字符串的第三个参数是长度,而不是末端位置,因此也发生了更改。嗨-是的!这是有效的。必须修改长度以获得所需的结果,但仍然非常有效:)谢谢!