0
我在寫一個存儲過程。我正在使用的查詢所採用的行除了2列以外的每一行都是相同的,並將它們合併爲一行並將兩行合併爲一行。現在我遇到了另一個問題。有時在這兩行中有重複的值,我想消除重複。從存儲過程中的COALESCED列中消除重複項?
例子:
TeamID Team City State Equipment
1 Thunder OKC OK Basketball, Basketball, Basketball, Shorts, Jersey, Jersey
我希望它是這樣的:
TeamID Team City State Equipment
1 Thunder OKC OK Basketball, Shorts, Jersey
下面是我用結合的行查詢。
SELECT DISTINCT
AssignedOfficeID, AssignedOffice, OperatorID, OperatorName, RigMasterID, DrillerRigNumber, WellID,
County, State, WellName, CompanyMan, CompanyManPhone, DateStart, DateStop, Representative, RepresentativeID, RepresentativeAssignedID, RepresentativeAssigned,
PricePerDay, CotNumber, CustomerOrderTicketNumber,
Equipment = STUFF((SELECT ', ' + COALESCE(RentalEquipmentAbbreviation, EquipmentAbbreviation, '')
FROM @ActiveRigsInfo AS ARI2
WHERE ARI2.AssignedOfficeID = ARI1.AssignedOfficeID AND ARI2.AssignedOfficeID = ARI1.AssignedOfficeID
AND ARI2.OperatorID = ARI1.OperatorID AND ARI2.OperatorName = ARI1.OperatorName
AND ARI2.RigMasterID = ARI1.RigMasterID AND ARI2.DrillerRigNumber = ARI1.DrillerRigNumber
AND ARI2.WellID = ARI1.WellID AND ARI2.County = ARI1.County AND ARI2.State = ARI1.State
AND ARI2.WellName = ARI1.WellName AND ARI2.CompanyMan = ARI2.CompanyMan AND ARI2.CompanyManPhone = ARI1.CompanyManPhone
AND ARI2.DateStart = ARI1.DateStart AND ARI2.Representative = ARI1.Representative
AND ARI2.CotNumber = ARI1.CotNumber
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'),1,2,'')
FROM @ActiveRigsInfo AS ARI1
ORDER BY AssignedOffice, OperatorID, RigMasterID;
有沒有辦法在創建存儲過程時執行此操作?或者有沒有辦法可以改變我的查詢來做到這一點?
我想要做的就是從合併列中取出重複項。除此之外,查詢按預期進行。
謝謝。我希望這是有道理的。
感謝@Adrian,我很感激。 – broguyman 2012-03-01 16:42:30