0
我從這裏的另一個線程(T-SQL: Opposite to string concatenation - how to split string into multiple records)複製了此代碼,它對我所需要的功能非常有用,但如果被問到,我無法解釋它是如何完成它的功能的。請解釋遞歸CTE正在一步一步做什麼?解釋SQL代碼Snippit
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
一便於理解和調試CTE的技巧是看中間結果。嘗試將最後的'SELECT'語句更改爲'SELECT * FROM Pieces'。 – HABO