$ cat sql-server-xquery-xml-icinde-sorgu.md

Sql Server XQuery – XML İçinde Sorgu

bu yazı 2008–2013 blog arşivinden. metni olduğu gibi duruyor; görselleri ve dışarı veren bağlantıları o internetle birlikte kaybolduğu için kaldırıldı

Sql server’da tablo kolonunda xml saklayabiliyoruz. Bu xml tipindeki kolonlarda verileri xquery ile sorgulayabiliyoruz.

[görsel: xml xquery table]

Mesela sql server’da TempTable isimli tablomuzun içinde XmlFile kolonunda aşağıdaki xml verisi tutuluyor olsun.

<Kategori>
      <KategoriID>1</KategoriID>
      <KategoriAdi>Bilgisayar</KategoriAdi>
   </Kategori>

her satırdaki xmlde o satıra ait kategori bilgileri tutuluyor. Şimdi her satır için kategori adını getiren sorguyu yazalım

 
SELECT XmlFile.query('Kategori/KategoriAdi').value('(/KategoriAdi)[1]','varchar(200)')  FROM TempTable

(/KategoriAdi)[1] ile xmldeki ilk kategoriAdı bilgisini getirmesini sağlıyoruz. 2 tane KategoriAdi olsa ikincisini getirmek için (/KategoriAdi)[2] olarak kullanmamız gerekecekti.

Aynı sorguyu şu şekilde de yazabiliriz

 
SELECT XmlFile.query('Kategori/KategoriAdi').value('.','varchar(200)')  FROM TempTable

Fakat xml’de birden fazla KategoriAdi verisi olsaydı, bu şekilde yazsaydık o satıra ait bütün kategori adlarını yan yana yazarak sonuç dönecekti. BilgisayarTelefonElektronik gibi. Şu an tek kategori adı olduğu için sonuç yukarıdaki sorgu ile aynı olacaktır.

← archive