我已经使用了一段时间:
SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))
但是最近,我发现所有“0”字符(如“00000000”)的列存在问题,因为它从未找到要匹配的非“0”字符。
我见过的另一种技术是使用TRIM:
TRIM
REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')
如果有嵌入的空格,这是有问题的,因为当空格变回“0”时,它们将变成“0”。
我试图避免使用标量 UDF。我发现 SQL Server 2005 中的 UDF 存在很多性能问题。
SUBSTRING(str_col, PATINDEX(‘%[^0]%’, str_col+’.’), LEN(str_col))