Sql-Server

就像存在() xml mssql

  • November 23, 2021

通過以下問題:查看 XML 元素是否存在於文件中具有特定值的任何級別

是否有可能的解決方案來實施like條款exist

例如,我有與所討論的 XML 類似的結構,但在 “tag” 中:<ContactLName>somevalues;Brandt;anothervalues</ContactLName> “Brandt” 儲存的有點不同。要找到“Btandt”,我必須使用類似的東西like,但我什麼也沒找到。

這是我正在尋找的範例:

WHERE tmp.[XmlCol].exist(N'/*/ContactLName[text() like "%Brandt%"]') = 1;


編輯(XML):

<event>
<id>23456</id>
<status_in_knowledge_map>active</status_in_knowledge_map>
<custom_elems>
   <custom_elem>
       <name>f_n84u</name>
       <value>6769747818850362088;6622044220776915827;5370802024842340642;6583457400600680603;6724970265512462551;6954452686001110038;6667448592984922570;6390613356250088198;6985638718331227440;5370802050233479119;5370802024842340639;6208275408034531857;6078654416541145539;6585528811993904287;6805915353243667957;6842010739999728536;6964839747571514100;6491764192266708067;6630060828301937234;6964682936739957053;6996382008379854236;5703859111941721724;6780468964682252783;</value>
   </custom_elem>
   <custom_elem>
       <name>f_twxr</name>
       <value>7031439420534698908;5667697629116916565;5667697629116916521;7032219545122506576;7032219609944822365;7032219012824308287;7032219395780000352</value>
   </custom_elem>
</custom_elems>
<asd>adsf</asd>

您可以在謂詞中使用fn:contains 。

c.data.exist('/course/custom_elems/text()[fn:contains(., "7032219868543590434")]') = 1;

我通過使用找到了答案value()

WHERE c.data.value('(/course/custom_elems)[1]','VARCHAR(MAX)') LIKE '%7032219868543590434%'

問題可能是重複的,在這裡有答案。

引用自:https://dba.stackexchange.com/questions/302971