J'ai une table Process
dans la base de données de serveur SQL comme ceci:obtenir la valeur d'attribut du noeud enfant XML avec lequel la condition sur le nœud parent
colonne workflowXML a des valeurs comme ceci:
<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>
J'ai besoin de SQL requête pour obtenir RoleName
en Task
nœuds que type
de Task
est start
. Je teste cette requête:
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
mais WorkflowXML.exist
est pas correct et retourner tous RoleNames
dans les colonnes xml.
Il serait très utile si quelqu'un pouvait expliquer la solution à ce problème.
Merci.
Simple et sympa! :) – gofr1