Обратите внимание, что используется T SQL, это не выражение SSIS. Ниже приведено решение, которое будет работать в SQL Server 2017 или новее. STRING_AGG - это SQL SERVER 2017 или новее, а STRING_SPLIT - SQL SERVER 2016 или новее.
Я использую STRING_SPLIT
, чтобы разбить строку ;
, затем STRING_AGG
, чтобы объединить части, которые вы хотите сохранить. Я добавил еще одну запись в мой пример, чтобы продемонстрировать, как вам нужно GROUP BY , чтобы хранить значения в отдельных строках, иначе все ваши значения вернутся в одной строке.
CREATE TABLE #MyTable
(
Id INT IDENTITY(1,1)
, [Related Procedure] VARCHAR(100)
)
INSERT INTO #MyTable VALUES
('117;#00.010;#120;#00.013')
, ('118;#00.011;#121;#00.014')
SELECT
STRING_AGG(REPLACE([value], '#', ''), ';')
FROM
#MyTable
CROSS APPLY STRING_SPLIT([Related Procedure], ';')
WHERE
[value] LIKE '%.%'
GROUP BY
Id