繁体   English   中英

选择SQL Query从ntext列获取xml节点值?

[英]Select SQL Query to get xml node values from ntext column?

我想从NTEXT列获取一个xml节点值,其中包含基于where子句查询另一个xml节点值的xml。 RDBMS类型:Microsoft SQL Server T-SQL这里:我想根据StoreId where子句值获取Code节点值。 我怎么得到它? 输入:100输出:ABCDE

例如:

<root>
  <StoreProfile>
    <General>
     <StoreId>100</StoreId>
     <Code>ABCDE</Code>
    </General>
  </StoreProfile>
</root>

如果您使用的是SQL Server 2005或2008,则可以像这样使用XQuery:

有关XQuery的更多信息,请参阅XQuery语言参考

DECLARE @storeId INT
SET @storeId = 100

CREATE TABLE #TestTable
(
    xmlColumn NTEXT
)

INSERT INTO #TestTable (xmlColumn) Values('<root><StoreProfile><General><StoreId>100</StoreId><Code>ABCDE</Code></General></StoreProfile></root>')
INSERT INTO #TestTable (xmlColumn) Values('<root><StoreProfile><General><StoreId>200</StoreId><Code>FGHIJ</Code></General></StoreProfile></root>')

SELECT 
    StoreProfile.value('Code[1]', 'nvarchar(10)') as Code 
FROM #TestTable
    CROSS APPLY (SELECT CAST(xmlColumn AS XML)) AS A(B) 
    CROSS APPLY A.B.nodes('//root/StoreProfile/General[StoreId = sql:variable("@storeId")]') AS StoreProfiles(StoreProfile)

DROP TABLE #TestTable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM