1
考慮以下輸入:連接字符串值
ID
--------
33
272
317
318
我需要以某種方式得到以下結果:
Result
--------
/33
/33/272
/33/272/317
/33/272/317/318
怎麼能我一個SELECT語句實現這一目標?
考慮以下輸入:連接字符串值
ID
--------
33
272
317
318
我需要以某種方式得到以下結果:
Result
--------
/33
/33/272
/33/272/317
/33/272/317/318
怎麼能我一個SELECT語句實現這一目標?
使用CROSS APPLY
和FOR XML PATH()
:
;WITH Cte AS(
SELECT *,
RN = ROW_NUMBER() OVER(ORDER BY (SELECT NULL))
FROM tbl
)
SELECT *
FROM Cte c
CROSS APPLY(
SELECT '/' + CONVERT(VARCHAR(10), ID)
FROM Cte
WHERE rn <= c.rn
FOR XML PATH('')
)x(s)
太棒了。在過去的一個小時裏,我嘗試了所有的事情,一次又一次地失敗。謝謝。 –
什麼決定的順序? –
行序列確定順序。因此,我可以使用ROW_NUMBER OVER(SELECT NULL)來排序這些行... –
表具有** no **固有順序。 'ROW_NUMBER OVER(SELECT NULL)'是一種複雜的告訴系統的方式:「我不關心*你在做什麼的次序」 –