2017-04-25 49 views
0

我有一個XML列的表。 我想解析它在XML特定的鍵,我完成通過執行以下操作:解析SQL CAST XML

SELECT TOP 1000 
CAST([PlatformInfo] as xml).value('(/PlatformInfo/@Device)[1]', 'varchar(max)') as Device , 
CAST([PlatformInfo] as xml).value('(/PlatformInfo/@SDKv)[1]', 'varchar(max)') as SDKv 
FROM [myDB].[dbo].[HISTORY_TB] 

現在我想對它進行排序,我總是得到一個錯誤。 我怎麼能說我的設備和SDKv創建的自定義列進行排序? 我如何按特定值對它進行分類?

感謝

+1

請出示你的代碼,錯誤消息,並且預期的結果。 – Renzo

+0

代碼顯示在原來的問題,我試圖做的代碼塊「ORDER BY SDKv或@SDKv由我結束我切切實實做一些錯誤 – ywainberg

+0

你說我要來排序,所以,我想,你有一個。分類代碼給出了一個錯誤 – Renzo

回答

0
Create table #companyname(name varchar(max)) 
Insert into #companyname (name) values 
('<name>US Concrete Inc</name>'), 
('<name>Digitiliti Inc</name>'), 
('<name>Printron Inc</name>'), 
('<name>Wesco Financial, LLC</name>'), 
('<name>Fusion Restaurant Group Inc</name>') 

select * from (
select top 4 CAST(name as xml).value('(/name)[1]','nvarchar(max)') as t 
from #companyname)tbl 
order by tbl.t 

同理:

Select * from (
    SELECT TOP 1000 
CAST([PlatformInfo] as xml).value('(/PlatformInfo/@Device)[1]', 'varchar(max)') as Device , 
CAST([PlatformInfo] as xml).value('(/PlatformInfo/@SDKv)[1]', 'varchar(max)') as SDKv 
FROM [myDB].[dbo].[HISTORY_TB]) dertbl 
order by dertbl.Device,dertbl.SDKv 
+0

這是我得到了'錯誤消息207,級別16,狀態1,行6 無效列名 '設備'。 消息207,級別16,狀態1,行6 無效的列名稱SDKv。「' – ywainberg