條件我有這樣的SQL Server數據庫的Process
表:獲得屬性XML子節點的值與在父節點
workflowXML列有值是這樣的:
<Tasks>
<Task type="start" id="Task_038517r">
<TaskUsers>
<TaskUser RoleName="User"/>
</TaskUsers>
</Task>
<Task type="final" id="Task_1sytah6">
<TaskUsers>
<TaskUser RoleName="Admin"/>
</TaskUsers>
</Task>
</Tasks>
我需要sql查詢得到RoleName
Task
節點type
的Task
是start
。 我測試這個查詢:
select m.c.value('@RoleName','varchar(max)') as RoleName
from Process as p
outer apply
p.WorkflowXML.nodes('/Tasks/Task/TaskUsers/TaskUser') as m(c)
where
WorkflowXML.exist('/Tasks/Task[@type="start"]') = 1
但WorkflowXML.exist
是不正確的,並返回所有的RoleNames
在XML列。
如果有人能夠解釋這個問題的解決方案,這將是非常有益的。
謝謝。
簡單而好看! :) – gofr1