2
我已經編寫了一個接口與CubeIQ BlackBox(www.magiclogic.com)進行交互,並且我有一個SQL Server 2005數據庫表,其中存儲了一些常規文本字段,日期和具有XML數據類型的列中的兩段XML。從存儲在XML數據類型中的XML查詢屬性和節點值
我想從XML中挑出一些值,但我無法弄清楚如何查詢XML或該XML內節點的屬性。
這裏是我想要做的查詢類型:
SELECT
[regular_table_field1],
[regular_table_field2],
[opt_resposne_xml][email protected]('someattribute') AS 'someattribute',
[opt_resposne_xml][email protected]('someattribute2') AS 'someattribute2'
FROM [optimizations] WHERE [opt_concept_id] = '1234'
非常感謝你。我找到了解釋過程如何工作但無法使查詢正常工作的語法的MSDN文章。你能解釋一下爲什麼你必須把XPath查詢放在(parens)中,爲什麼最後有一個[1]?這是在一組節點中指定該屬性的第一個,第二個第三個等外觀的方式嗎? – DirtyBirdNJ 2011-06-01 20:42:16
爲什麼選擇parens?我不知道 - 你得問問定義這一點的微軟設計師。 '[1]'表示第一次出現 - 如果您想將其轉換爲單個數據值,則需要確保它只是返回一個XML節點/屬性。是的 - 你也可以使用'[2]'獲得第二個 - 但要小心,以確保有第二個.... – 2011-06-01 20:43:49
我實際上是在試圖看看它會如何工作......如果我離開[1]我得到一個錯誤......因爲沒有[2]它會返回NULL,如果我使用它。我基本上是寫這個完全相同的查詢,但沒有額外的parens和括號內的索引指標。 – DirtyBirdNJ 2011-06-01 20:51:03