[SQL ] 請教xml欄位節點篩選的問題

看板Database (資料庫)作者 (YiMMiY)時間6年前 (2018/09/17 22:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
MS SQL - 2012 各位好 現在有一張蠻單純的資料表 Table1 { Pkey nvachar(max) XmlData xml } 假設資料內容 Pkey XmlData --------------------------------------- One <root attr1="One" attr2="XXX"> <AAA> aaaOne </AAA> <BBB> bbbOne </BBB> <CCC> ccc1One </CCC> <CCC att="2"> ccc2One </CCC> <DDD> dddOne </DDD> <root> Two <root attr1="Two" attr2="XXX"> <AAA> aaaTwo </AAA> <BBB> bbbTwo </BBB> <CCC> ccc1Two </CCC> <CCC att="2"> ccc2Two </CCC> <DDD> dddTwo </DDD> <root> ...後面還有很多筆 現在我想撈BBB CCC,加上查詢條件(EX:Pkey='One' OR Pkey='Two') SELECT Pkey, XmlData.query('/root/BBB , /root/CCC ') AS XmlData FROM Table1 WHERE Pkey='One' OR Pkey='Two' 會得到 Pkey XmlData --------------------------------------- One <BBB> bbbOne </BBB> <CCC> ccc1One </CCC> <CCC att="2"> ccc2One </CCC> Two <BBB> bbbTwo </BBB> <CCC> ccc1Two </CCC> <CCC att="2"> ccc2Two </CCC> 但我希望是能得到 Pkey XmlData --------------------------------------- One <root attr1="One" attr2="XXX"> <BBB> bbbOne </BBB> <CCC> ccc1One </CCC> <CCC att="2"> ccc2One </CCC> <root> Two <root attr1="Two" attr2="XXX"> <BBB> bbbTwo </BBB> <CCC> ccc1Two </CCC> <CCC att="2"> ccc2Two </CCC> <root> 也就是包完整的XML路徑 請問該如何查詢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.186.219 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1537193963.A.22E.html
文章代碼(AID): #1RdxVh8k (Database)
文章代碼(AID): #1RdxVh8k (Database)