this is what my query looks like:
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
and i keep getting:
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.
what am i doing wrong??
i can't query prod1 directly, how else can i find all records that have "Other" as the Class Template?
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
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