从 SQL 读取保存为文本的 XML

时间:2022-11-30
本文介绍了从 SQL 读取保存为文本的 XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

这是我的查询的样子:

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.

我做错了什么??

推荐答案

我不能直接查询prod1,我怎么能找到所有以Other"作为类模板的记录?

i can't query prod1 directly, how else can i find all records that have "Other" as the Class Template?

您不能在同一 SELECT 语句的另一列中引用列别名 - 使用:

You can't reference a column alias in another column of the same SELECT statement - use:

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 

如果要根据 WHERE 子句中的 prod2 值过滤掉 - 使用:

If you want to filter out based on the prod2 value in the WHERE clause - use:

  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 

这篇关于从 SQL 读取保存为文本的 XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:SQL 更新查询和“子查询返回多个值" 下一篇:如何在 SQL Server 中将时间类型变量除以 2

相关文章

最新文章