我想從國家列中獲取子字符串,基於UserCountry列。從sql server中的另一列中選擇從字段的子字符串
這是我當前的輸出,基於我的查詢。
現在我想的是,如果userCountry列的值是新加坡然後在全國列應該只有新加坡。
因此,在這些2結果列全國預計我的輸出應該是
-
在第一行
- :新加坡
- 在第二排:馬來西亞
國家列有,
分隔值。
這是我的查詢
select PU.Email,PUC.DisplayName UserCountry
,STUFF((SELECT ',' + IIF(C.DisplayName IS NOT NULL,C.DisplayName,CTC.TargetingId)
FROM CampaignTargeting CTC
LEFT JOIN Country C On CTC.TargetingId = C.Id
WHERE CTC.CampaignId =Camp.Id and CTC.TypeName='Country'
FOR XML PATH('')), 1, 1, '') AS Country
,STUFF((SELECT ',' + IIF(P.DisplayName IS NOT NULL, P.DisplayName,CTP.TargetingId)
FROM CampaignTargeting CTP
LEFT JOIN Profession P On CTP.TargetingId = P.Id
WHERE CTP.CampaignId =Camp.Id and CTP.TypeName='Profession'
FOR XML PATH('')), 1, 1, '') AS Profession
,STUFF((SELECT ',' + IIF(S.DisplayName IS NOT NULL, S.DisplayName,CTS.TargetingId)
FROM CampaignTargeting CTS
LEFT JOIN Specialty S On CTS.TargetingId = S.Id
WHERE CTS.CampaignId =Camp.Id and CTS.TypeName='Specialty'
FOR XML PATH('')), 1, 1, '') AS Specialty
,STUFF((SELECT ',' + IIF(SS.DisplayName IS NOT NULL,SS.DisplayName,CTSS.TargetingId)
FROM CampaignTargeting CTSS
LEFT JOIN SubSpecialty SS On CTSS.TargetingId = SS.Id
WHERE CTSS.CampaignId =Camp.Id and CTSS.TypeName='SubSpecialty'
FOR XML PATH('')), 1, 1, '') AS SubSpecialty
FROM Campaign Camp
LEFT JOIN PointsTransaction PT ON PT.ReferenceId=Camp.Id and PT.Points > 0
LEFT JOIN PointUser PU ON PU.Id=PT.PointUserId
LEFT JOIN Country PUC on PU.CountryId=PUC.Id
WHERE Camp.Id='8bd948c9-a597-480b-8772-815f2b31c850'
GROUP BY Camp.Id,PU.Email,PUC.DisplayName
我使用MS SQL Server 2012的
那麼爲什麼要使用的東西的語句直接使用國家列如用戶國家@amit – mohan111