T-SQL XML值/节点函数+ XML Cast

时间:2012-03-28 17:03:46

标签: xml tsql

我在表中有一个包含XML文本的列,但它不是XML类型,不应更改其类型。

我已编写以下SQL查询以从其

获取一些信息
DECLARE @TempXML XML=(SELECT TOP 1 XMLColumn FROM TableOne)

SELECT  T.c.query('.').value('(/question/@id)[1]','BIGINT') AS [QuestionID]
       ,T.c.query('.').value('(/question/@comment)[1]','NVARCHAR(100)') AS [Comment]
       ,T.c.query('.').value('(/question/answer/@pos)[1]','TINYINT') AS [AnswerPosition]
FROM   @TempXML.nodes('/submission/question') T(c)

我有网的问题是我必须创建一个视图,其中每行将执行上面的查询,但我无法连接查询和xml转换。

我尝试创建CTE来进行转换但后来遇到了一些困难  在实现我的查询。

WITH CTEview(CurrentXML) AS 
(
    SELECT CAST(XMLColumn AS XML) AS [CurrentXML]
    FROM TableOne
)
--My SQL goes here

1 个答案:

答案 0 :(得分:1)

对CTE的XML列使用“交叉应用”解决了这个问题。