我有一個csv,我將它帶入SQL表中。 csv在CrimeType中有一個字段。該字段是管道分隔的。所以,我使用的交叉應用,打破了管道,就像這樣:csv中管道分隔字段內記錄的索引號
SELECT CrimeRecords.CaseNum, CrimeRecords.Offense, PrimaryCrime.PrimaryCrime
FROM (SELECT CaseNum ,x.i.value('.','varchar(20)') AS Offense
FROM (SELECT CaseNum, CONVERT(XML,'<i>'+REPLACE(CrimeType, '|', '</i><i>') + '</i>') AS d
FROM CrimeView.dbo.tblCrimeData)x1 CROSS APPLY d.nodes('i') AS x(i)) AS CrimeRecords
有人可以幫我補充一個步驟,以創建一個字段的序列號?基本上我只想返回管道中物品的順序。
對於像行:
1, Burglary|Assault
2, Burglary
3, Assault|Assault-Weapon|Theft
我的結果表是這樣的:
CaseNum CrimeType SeqNum
1 Burglary 1
1 Assault 2
2 Burglary 1
3 Assault 1
3 Assault-Weapon 2
3 Theft 3
編輯以表明該序列號重置每個CaseNum。
編輯標籤以澄清這是Microsoft SQL,而不是MySQL。
表中的序列字段(ID)是否足夠用於該目的? –
@AlexisWilke我需要與CaseNum相關的數字。所以對於CaseNum#2,SeqNum需要重新開始1. – sernst
啊!您可能想要進行編輯以清楚地顯示序列號每次重置... –