Sql-Server
就像存在() xml mssql
通過以下問題:查看 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%'
問題可能是重複的,在這裡有答案。