В T SQL мне нужно создать сценарий для удаления всех начальных нулей между '.', Начиная с первого 0 в строке ИСКЛЮЧАЯ, когда есть '.0.' в любом месте в середине номера задачи. То, что у меня есть до сих пор, отлично работает, когда номер задачи не имеет EX: 111.0.123.234, но я не могу понять комбинацию SUBSTRING / CHARINDEX / PATINDEX, et c. чтобы удалить все ведущие нули, кроме тех случаев, когда ноль является единственным числом между '.' См. Прилагаемый снимок экрана и сценарий / частичные результаты в качестве примера.
Вот мой сценарий:
SELECT TASKPRODUCTID, (CASE WHEN TASKPRODUCTID NOT LIKE '%.0.%' THEN
REPLACE(LTRIM(REPLACE(TASKPRODUCTID,'0','')),' ','0') ELSE
SUBSTRING(TASKPRODUCTID, PATINDEX('%[^0 ]%', TASKPRODUCTID + ' '), LEN(TASKPRODUCTID))
END) AS NewTaskProductID
FROM TASK
Вот частичный набор результатов:
TASKPRODUCTID NewTaskProductID
003.007.002.001 3.7.2.1
003.007.002.003 3.7.2.3
004.003.003.008.0.2017275.132925 4.003.003.008.0.2017275.132925
004.005.001.003 4.5.1.3
004.005.004.004.0.2017275.135139 4.005.004.004.0.2017275.135139
004.005.007.005.0.2017275.140304 4.005.007.005.0.2017275.140304
002.001.002 2.1.2
002.004 2.4
016.010 16.1
Снимок экрана Пример начального нуля в выделенных строках все еще имеют ведущие нули в следующем десятичном разделе (ах)
Спасибо !!