T-SQL XML Value / Узлы функции + XML Cast - PullRequest
1 голос
/ 28 марта 2012

У меня есть столбец в таблице, который содержит текст 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)

Проблема net у меня заключается в том, что мне нужно создать представление, в котором для каждой строки будет выполняться вышеуказанный запрос, но я не могу объединить запрос и преобразование xml.

Я попытался создать CTE, в котором нужно выполнить преобразование, но затем столкнулся с некоторыми трудностями. в реализации моего запроса.

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

1 Ответ

1 голос
/ 06 сентября 2012

Использование «Cross Apply» для столбцов XML из CTE решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...