将字符串列转换为字符行
我有一个包含以下数据的表:
| ID | 价值 |
|---|---|
| 1 | P126 |
回答
您可以使用递归 cte 解决此问题:
DECLARE @t nvarchar(10) = 'P126';
WITH cte AS (
SELECT 1 id, LEFT(@t, 1) col, RIGHT(@t, LEN(@t)-1) txt
UNION ALL
SELECT id+1, LEFT(txt, 1), RIGHT(txt, LEN(txt)-1)
FROM cte
WHERE LEN(txt) >= 1
)
SELECT id, col
FROM cte