Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析sql转换xml_Sql_Xml_Sql Server 2012_Rds - Fatal编程技术网

解析sql转换xml

解析sql转换xml,sql,xml,sql-server-2012,rds,Sql,Xml,Sql Server 2012,Rds,我有一个带有xml列的表。 我想为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 [m

我有一个带有xml列的表。 我想为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创建的自定义列进行排序? 如何按特定值对其进行排序


谢谢

请显示您的代码、错误消息和预期结果。代码显示在原始问题中,我尝试在代码块末尾执行“ORDER BY SDKv或@SDKv BY i在做一些错误的事情,你说我想排序,所以,我假设你有一个排序代码,它给出了一个错误。如果你的列已经是数据类型
XML
,那么这个
CAST
就没有必要了:
CAST([PlatformInfo]as XML)
…数据类型没有设置为XML。此外,我现在看到查询需要2分钟,但最终以“按SDKv订购”或“按设备订购”成功。这是我得到的错误
Msg 207,16级,状态1,第6行无效列名“Device”。Msg 207,16级,状态1,第6行无效列名“SDKv”
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