
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