
SQL de XML İfadeleri
Verilerimizi sql sorgularıyla xml formatında nasıl görüntüleyeceğimize bakalım.Örneklerimiz için aşağıdaki sorguyu kullanacağız.
1 2 3 4 |
SELECT CustomerID,FirstName, MiddleName, LastName FROM Sales.Customer INNER JOIN Person.Person ON Sales.Customer .PersonID = Person.Person .BusinessEntityID |
1)Raw modu
Raw ifadesinin kullanımı çok basittir.İstediğimiz sorgunun sonuna FOR XML RAW; ifadesini ekleyerek xml görüntüsünü elde edebiliriz.
1 2 3 4 5 6 7 8 9 |
SELECT CustomerID,FirstName, MiddleName, LastName FROM Sales.Customer INNER JOIN Person.Person ON Sales.Customer .PersonID = Person.Person .BusinessEntityID FOR XML RAW; |
Sorgumuzu execute ettiğimizde aşağıdaki sonuç ile karşılaşırız.Raw ifadesi her veri için row elementi oluşturur.
1 2 3 4 5 |
SELECT CustomerID,FirstName, MiddleName, LastName FROM Sales.Customer INNER JOIN Person.Person ON Sales.Customer .PersonID = Person.Person .BusinessEntityID FOR XML RAW, ELEMENTS; |
XML sonucumuzun daha düzenli olması için sorgumuzun sonuna bu sefer FOR XML RAW, ELEMENTS; ifadesini ekleyelim .Aşağıda görüldüğü gibi ayrı ayrı elementlerle oluşturulmuş oldu.
2)Auto modu
Auto ifadesi ile XML sonucumuzda sorgumuzda kullandığımız tabloların adları listeleniyor.
1 2 3 4 5 |
SELECT CustomerID,FirstName, MiddleName, LastName FROM Sales.Customer INNER JOIN Person.Person ON Sales.Customer .PersonID = Person.Person .BusinessEntityID FOR XML AUTO |
CustomerID lerine göre bir listeleme yapıldı.Joinleme yaptığımız için Customer ->Person şeklinde bir görüntü elde ettik.
1 2 3 4 5 |
SELECT CustomerID,FirstName, MiddleName, LastName FROM Sales.Customer INNER JOIN Person.Person ON Sales.Customer .PersonID = Person.Person .BusinessEntityID FOR XML AUTO, ELEMENTS XSINIL; |
Yukarıdaki örnekte XSINIL; ifadesi kullanıldı.Xml sonucu aşağıdaki gibidir.Burada xsi adı ile “http://www.w3.org/2001/XMLSchema-instance” linki paylaşılıyor.Bu link ile XSINIL özelliğinin bu sitede anlatıldığını gösterir.Aşağıda <MiddleName xsi:nil="true" /> şeklinde bir sonuç ile karşılaşırız.Bu MiddleName alanının null olduğunu ama XSINIL ifadesini kullandığımızdan ötürü o sonucu gösterdiği anlamına gelir.
Leave a reply