Чтение XML, который сохраняется как текст из SQL - PullRequest
3 голосов
/ 23 октября 2010

Вот как выглядит мой запрос:

select top 5   cast(content_html as xml) as [prodxml],
prodxml.value('data(ClassTemplate[1]', 'nvarchar(max) ') as prod2
from content 
where 
end_date >= getdate()
and folder_id != 71682 

, и я продолжаю получать:

Msg 4121, Level 16, State 1, Line 1
Cannot find either column "prodxml" or the user-defined function or aggregate "prodxml.value", or the name is ambiguous.

что я делаю неправильно ??

1 Ответ

3 голосов
/ 23 октября 2010

я не могу напрямую запросить prod1, как еще я могу найти все записи, которые имеют "Другое" в качестве шаблона класса?

Нельзя ссылаться на псевдоним столбца в другомстолбец того же оператора SELECT - используйте:

SELECT TOP 5   
       CAST(t.content_html AS XML).value('(/root/ClassTemplate)[1]', 'NVARCHAR(max)') AS prod2
  FROM CONTENT t
 WHERE t.end_date >= getdate()
   AND t.folder_id != 71682 

Если вы хотите отфильтровать на основе значения prod2 в предложении WHERE - используйте:

  FROM CONTENT t
 WHERE CAST(t.content_html AS XML).value('(/root/ClassTemplate)[1]', 'NVARCHAR(max)') = 'Other'
   AND t.end_date >= getdate()
   AND t.folder_id != 71682 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...