Вы можете использовать рекурсивный CTE как следующий
CREATE TABLE TBL(
Id INT,
String VARCHAR(45)
);
INSERT TBL VALUES
(1, 'a,b,c'),
(2, 'b');
WITH CTE(Id, Chr, String) AS
(
SELECT Id,
CAST(LEFT(String, CHARINDEX(',', String + ',') - 1) AS VARCHAR(20)),
STUFF(String, 1, CHARINDEX(',', String + ','), '')
FROM TBL
UNION ALL
SELECT Id,
CAST(LEFT(String, CHARINDEX(',', String + ',') - 1) AS VARCHAR(20)),
STUFF(String, 1, CHARINDEX(',', String + ','), '')
FROM CTE
WHERE String > ''
)
SELECT Id,
Chr
FROM CTE
ORDER BY Id;
Онлайн-демонстрация