Я использовал этот в течение некоторого времени:
SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))
В последнее время я обнаружил проблему со столбцами со всеми символами "0", такими как "00000000", потому что он никогда не находит символ "0" для соответствия.
Альтернативный метод, который я видел, это использовать TRIM
:
REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')
У этого есть проблема, если есть встроенные пробелы, потому что они будут превращены в "0", когда пространства вернутся в "0" s.
Я пытаюсь избежать скалярного UDF. Я нашел много проблем с производительностью с UDF в SQL Server 2005.