我需要编写一个函数来删除字符串中的第一个前导零。第一个零点的位置可以变化。
示例一:
0000900 needs to become 900
示例二:
A0000900 needs to become A900
示例三:
ABCD00090ABC0D needs to become ABCD90ABC0D
示例四:
ABC0D00090ABC0D needs to become ABCD00090ABC0D
因此,无论起始位置如何,都必须删除第一个前导零。
我试过了:
DECLARE @input VARCHAR(255)= '0002981K0K'
SELECT SUBSTRING(@input, PATINDEX('%[^0]%', @input), LEN(@input))
但这只会导致2981K0K
,这很好。但是每当我在前面添加一个非数字值时(让我们说A
),查询就不会再看到第一个前导零并导致A0002981K0K