本文介紹了從 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的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!