Я бы порекомендовал не использовать STRING_SPLIT
здесь, потому что может быть трудно выловить три компонента из вашей строки, разделенной дефисом.Вместо этого я рекомендую использовать CHARINDEX
:
WITH T2 AS (
SELECT '0021C-15563017-2' AS col
)
SELECT
LEFT(col, CHARINDEX('-', col) - 1) AS CLNTCODE,
SUBSTRING(col,
CHARINDEX('-', col) + 1,
CHARINDEX('-', col, CHARINDEX('-', col) + 1) -
CHARINDEX('-', col) - 1) AS certno,
SUBSTRING(col, CHARINDEX('-', col, CHARINDEX('-', col) + 1) + 1, LEN(col))
AS depcode
FROM T2;
![enter image description here](https://i.stack.imgur.com/MA9OL.png)
Демо
Обратите внимание, что STRING_SPLIT
здесь будет сложно использовать, потому что трудно обратиться к данной записи из табличного ответа от этой функции.