2010-10-19 7 views
1

J'ai une table contient le champ nommé source avec varchar (max).Lire la valeur de l'attribut XML dans SQL Server 2005

Ce champ a la valeur suivante

<OutPatientMedication 
     DateFormat="MM-dd-yyyy" 
     MedicationName="lisinopril 10 mg oral tablet" 
     Instructions="2 cap(s) orally once a day " 
     Status="Active" 
     Quantity="0" 
     Refills="0" 
     PrescriptionType="E"> 
</OutPatientMedication> 

Maintenant, je veux récupérer la valeur de l'attribut Instructions.

Comment puis-je récupérer de la valeur?

Une réponse rapide sera appréciée.

Merci, Dhruval Shah

Répondre

3

Essayez quelque chose comme ceci:

SELECT 
    CAST(Source AS XML).value('(/OutPatientMedication/@Instructions)[1]', 'varchar(200)') 
FROM 
    dbo.YourTable 
WHERE 
    (condition) 

Cela devrait vous donner la valeur souhaitée.

Si vous n'avez vraiment que du XML dans cette colonne, je vous recommande vivement de le faire de type XML dans la base de données! Rend votre vie beaucoup plus facile et économise aussi de l'espace disque.

+0

Merci :), Ici, je ne suis pas en mesure de changer le type de données tel qu'il est en production. Mais je garderai vos suggestions à l'esprit. – Mike