0
我有以下查詢,我在XMLData類型列中搜索。SQL - 根據搜索模式輸出一個子字符串,確保首字符/最後一個字符串是全字
我想返回一個節點的子串,該節點或者以搜索條件開始,然後X個字符,然後以完整的單詞或一個子字符串結尾,該搜索條件將搜索條件放在結果的中間,幷包含X個字符開始/結束之前和之後的新單詞。
這兩個概念的原因是,搜索標準可能在節點的開始處,因此X之後的字符數或深度在文本中顯示字符之前/之後。
我的查詢似乎是以一個新單詞開始的,但我不能以此結束,我有一個反轉字符串,對它做一個patindex,然後做長度的搜索 - patindex,但似乎沒有上班。
感謝
SELECT
P.Title,
SUBSTRING(DATA.value('(/PageContent/Text)[1]', 'VARCHAR(100)'),PATINDEX('%north%',DATA.value('(/PageContent/Text)[1]', 'VARCHAR(100)')) - 20 + PATINDEX('% %',SUBSTRING(DATA.value('(/PageContent/Text)[1]', 'VARCHAR(100)'),PATINDEX('%north%',DATA.value('(/PageContent/Text)[1]', 'VARCHAR(100)')) - 20,999)),999) AS Data
FROM WEBPAGECONTENT W
INNER JOIN WebPage P
ON P.ID = W.PageID
WHERE COALESCE(PATINDEX('%north%',DATA.value('(/PageContent/Text)[1]', 'VARCHAR(100)')),0) > 0