2015-09-08 103 views
1

希望有人能幫助我與SQL Server的問題,在我們的表之一,我有一個包含在下面的XML類型格式數據的LONGTEXT數據類型:查詢XML數據類型列,並插入到SQL Server表

<entry name=\"cleaned_sectors\" type=\"uint\">585937500</entry>\r\n<entry name=\"bad_sectors\" type=\"uint\">0</entry>\r\n<entry name=\"state\" 

通常,當我在一個表中所遇到的XML,它看起來像這樣:

<header>data</Header><Manufacturer>Dell</Manufacturer> 

我生成一個查詢來獲取像這樣的數據:

SELECT 
    Tbl.Col.value('Header[1], 'nvarchar(50)'), Tbl.Col.value('manufacturer[1].'nvarchar(50)') 
FROM ... 

但是你會注意到這個數據不是標準的XML,每個標籤都包含在\「有沒有一種方法可以查詢包含的數據,然後將其導入到另一個表中?

預計產量會是這樣的:

Cleaned Sectors | Bad Sectors 
585937500  | 0 

與查詢數據,因爲我一直在嘗試了幾個小時將是輝煌的任何幫助。謝謝。

回答

0

清理您的輸入,然後轉換爲XML並一如既往地使用。

SELECT 
    CAST(
    REPLACE(
     REPLACE('<entry name=\"cleaned_sectors\" type=\"uint\">585937500</entry>\r\n' 
     ,'\"', '"') 
    ,'\r\n', '') 
    AS XML) 
+0

您好,感謝您的回答,難道我用這個方法來有效地剝離'<條目名稱= \ 「cleaned_sectors \」 型= \ 「UINT \」> 585937500 \ r \ N'到'< cleansectors> 585937500',甚至只需關閉中間元素的結束標記? '<清理扇區> 585937500',然後這個工作,然後查詢使用我的常規方法? – BenXvisual

+0

非常感謝你 - [小提琴](http://sqlfiddle.com/#!6/9eecb7db59d16c80417c72d1/2730) – BenXvisual