-1
我有一個表Campaign
與列CampaignXml
加上其他列。在CampaignXml
,我保存問題。我需要一個查詢來獲得所有CampaignXml
列中的問題數量。我需要查詢以獲得有關XML的數據計數
我寫了一個存儲過程使用top 1 CampaignXML
從Campaign
表,但我想看看錶中的所有CampaignXml
並得到問題計數。
ALTER PROCEDURE [dbo].[GetPanelsitCount]
AS
DECLARE @CampaignXML NVARCHAR(MAX)
DECLARE @idoc INT
DECLARE @Marketid INT
SELECT DISTINCT TOP 1 @CampaignXML = CampaignXML, @marketid = marketid
FROM dbo.Campaign
WHERE campaigntypeid = 8
AND CampaignXML IS NOT NULL
AND statusid = 57
AND marketid = 24
EXEC sp_xml_preparedocument @idoc OUTPUT
,@CampaignXML
(SELECT ID INTO #tblQuestionId FROM OPENXML(@idoc, 'XmlCampiagn/Pages/Page[1]/Questions/Question') WITH (ID INT '@ID'))
-- select * from #tblQuestionId
示例XML:
<XmlCampiagn Name='My Campaign' ID='4'>
<GlobalSetting Name='Global Setting'>
<MobileNumberVerification Enabled='False' Mandatory='False' Required='False'></MobileNumberVerification>
<XGEOTargeting Enabled='False'></XGEOTargeting>
<Captcha Enabled='False'></Captcha>
</GlobalSetting>
<Pages>
<Page ID= '1' Name='Default' PageType='Default' Mode='0'>
<PipingLogics></PipingLogics>
<Questions>
<Question MaxLength='' Validation='' ID='6448'
Mandatory='True' Required='False' IsNonEditable='False'/>
</Questions>
<Logics></Logics>
<MaskingLogics></MaskingLogics>
</Page>
</Pages>
</XmlCampiagn>
感謝,但我得到error..Cannot既找不到列「CampaignXML」或用戶定義的函數或聚合「CampaignXML.value」,或名稱不明確。 –
@ M.Hasan:那麼,**數據類型**是您的「CampaignXml」列?既然你說它存儲XML,我認爲它是'XML'數據類型 - 如果不是,那麼'.value()'是不可能的,當然..... –
它的nvarchar數據類型 –