我有如下表:查詢轉換數百萬行的水平
RECID OBJECTIF
1001 1001
1001 1002
1001 1003
2001 2001
2001 2002
,我需要這樣一個結果:
RECID MyFIELD
1001 1001-1002-1003
2001 2001-2002
只是,如果你能給我用什麼提示,無需編寫代碼
請考慮到我在我的表中有數百萬條記錄
感謝
我有如下表:查詢轉換數百萬行的水平
RECID OBJECTIF
1001 1001
1001 1002
1001 1003
2001 2001
2001 2002
,我需要這樣一個結果:
RECID MyFIELD
1001 1001-1002-1003
2001 2001-2002
只是,如果你能給我用什麼提示,無需編寫代碼
請考慮到我在我的表中有數百萬條記錄
感謝
在這裏你去....我不知道有關與數百萬條記錄的性能......但我仍覺得這是不是要設立一個光標爲基礎的方法更好....
SELECT * FROM [PivotSample]
RECID OBJECTIFSEQUENCE
1001 1002 1
1001 1003 3
1001 1001 2
2001 2001 3
2001 2002 4
2001 2003 2
2001 2004 1
回答查詢如下..
SELECT [RECID]
,STUFF((SELECT '- ' + CAST([OBJECTIF] AS varchar), REPLACE(MAX(SEQUENCE),MAX(SEQUENCE),'') FROM [PivotSample] B WHERE B.[RECID]=A.[RECID]
GROUP BY [OBJECTIF],SEQUENCE ORDER BY SEQUENCE FOR XML PATH('')), 1, 1, '') AS OBJECTIVE
FROM [PivotSample] A
GROUP BY [RECID]
RECID OBJECTIVE
1001 1002- 1001- 1003
2001 2004- 2003- 2001- 2002
你已經找到了答案:支點。如果你遇到困難,你可以嘗試一些代碼並詢問它。 – Kuzgun
我正在使用SQL Server。那麼這個「樞軸」是否會成爲一張表中數百萬記錄的理想解決方案呢? –