﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>For XML Path Kullanımı &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/for-xml-path-kullanimi/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Fri, 24 Mar 2023 11:29:11 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>SQL Server&#8217;da STUFF FOR XML PATH Kullanımı</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-stuff-for-xml-path-kullanimi</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 11:29:11 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[For XML Path Kullanımı]]></category>
		<category><![CDATA[STUFF FOR XML PATH]]></category>
		<category><![CDATA[STUFF FOR XML PATH Kullanımı]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=15812</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server’da STUFF FOR XML PATH kullanımıyla ilgili bilgi vermeye çalışacağım. SQL Server&#8217;da STUFF() , bir dizenin belirli bir bölümünü siler...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server’da STUFF FOR XML PATH kullanımıyla ilgili bilgi vermeye çalışacağım.</p>
<p>SQL Server&#8217;da <strong>STUFF() </strong>, bir dizenin belirli bir bölümünü siler ve ardından belirtilen bir konumdan başlayarak dizeye başka bir bölüm ekler.</p>
<p>SQL Server&#8217;da <strong>FOR XML PATH</strong> ise, sorgu sonuçlarını PATH bağımsız değişkeninde bulunan öğe adıyla XML öğeleri olarak çıkarmanıza olanak tanır.</p>
<p>SQL Server&#8217;da <strong>STUFF FOR XML PATH</strong> ise, bir sorgu sonucunu XML formatında döndürmek için kullanılan bir işlevdir. Bu işlev, belirli bir karakter dizisinin belirtilen bir konumundan başlayarak, belirtilen uzunlukta bir karakter dizisini diğer bir karakter dizisiyle değiştirir.</p>
<p>Örnek olarak, bir &#8220;Customers&#8221; tablosunda yer alan müşteri adlarını ve sipariş numaralarını birleştirerek XML formatında döndürmek istediğimizi varsayalım. Bu durumda, STUFF FOR XML PATH işlevi şu şekilde kullanılabilir:</p>
<pre class="line-numbers"><code class="language-sql">CREATE TABLE Customers (
	CustomerID INT NOT NULL PRIMARY KEY
   ,CustomerName VARCHAR(255) NOT NULL
   ,ContactName VARCHAR(255)
   ,Country VARCHAR(255)
);

INSERT INTO Customers (CustomerID, CustomerName, ContactName, Country)
	VALUES (1, 'Alfreds Futterkiste', 'Maria Anders', 'Germany'),
	(2, 'Ana Trujillo Emparedados y helados', 'Ana Trujillo', 'Mexico'),
	(3, 'Antonio Moreno Taquería', 'Antonio Moreno', 'Mexico'),
	(4, 'Around the Horn', 'Thomas Hardy', 'UK'),
	(5, 'Berglunds snabbköp', 'Christina Berglund', 'Sweden');


CREATE TABLE Orders (
	OrderID INT NOT NULL PRIMARY KEY
   ,CustomerID INT NOT NULL
   ,OrderDate DATE
   ,TotalAmount DECIMAL(10, 2)
);

INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount)
	VALUES (1, 1, '2022-01-01', 100.50),
	(2, 1, '2022-02-01', 200.25),
	(3, 2, '2022-01-15', 75.80),
	(4, 3, '2022-02-28', 150.00),
	(5, 5, '2022-01-20', 50.00);

SELECT
	CustomerName
	,STUFF((SELECT
			',' + CAST(OrderID AS VARCHAR(10))
		FROM Orders
		WHERE CustomerID = c.CustomerID
		FOR XML PATH (''))
	, 1, 1, '') AS OrderIDs
FROM Customers c</code></pre>
<p>Yukarıdaki sorguyu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-15814 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2023/03/sql-serverda-stuff-for-xml-path-kullanimi-1.png" alt="SQL Server'da STUFF FOR XML PATH Kullanımı " width="700" height="462" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2023/03/sql-serverda-stuff-for-xml-path-kullanimi-1.png 700w, https://sqlserveregitimleri.com/wp-content/uploads/2023/03/sql-serverda-stuff-for-xml-path-kullanimi-1-315x208.png 315w, https://sqlserveregitimleri.com/wp-content/uploads/2023/03/sql-serverda-stuff-for-xml-path-kullanimi-1-455x300.png 455w, https://sqlserveregitimleri.com/wp-content/uploads/2023/03/sql-serverda-stuff-for-xml-path-kullanimi-1-205x135.png 205w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Yukarıdaki sorgu, her bir müşteri için bir satır döndürür ve her bir müşterinin sipariş numaralarını birleştirerek XML formatında &#8220;OrderIDs&#8221; sütununda döndürür. STUFF işlevi, sipariş numaralarının virgülle ayrılmış bir listesini oluşturmak için kullanılır. FOR XML PATH ise, sonucu XML formatında döndürmek için kullanılır.</p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 470</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server&#8217;da STUFF ve FOR XML PATH&#8217;in Birlikte Kullanımı</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Sat, 11 Sep 2021 07:11:26 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[For XML Path Kullanımı]]></category>
		<category><![CDATA[STUFF kullanımı]]></category>
		<category><![CDATA[STUFF ve FOR XML PATH'in Birlikte Kullanımı]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=10628</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server’da STUFF ve FOR XML PATH&#8216;in birlikte kullanımından bahsedeceğim. SQL Server&#8217;da bu iki ifade ile örnek çok fazla görmüşsünüzdür ama...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server’da <strong>STUFF</strong> ve <strong>FOR XML PATH</strong>&#8216;in birlikte kullanımından bahsedeceğim.</p>
<p>SQL Server&#8217;da bu iki ifade ile örnek çok fazla görmüşsünüzdür ama nasıl kullanıldığı ile ilgili çok fazla detaylı kaynak yoktur.</p>
<p>Bu yazıda bu konuyu ele almaya çalışacağım.</p>
<p>Öncelikli olarak SQL Server&#8217;da STUFF fonksiyonu bir ifadenin belli bir yerini başka bir ifade ile değiştirmek için kullanılır</p>
<p>FOR XML PATH ise tablo şeklinde oluşturulmuş verilerden karmaşık XML belgeleri oluşturulmak istenildiğinde en iyi kullanılacak araçtır.</p>
<p>Peki ikisini birlikte nasıl kullanacağız ve ne işimize yarayacak?</p>
<p>İlk olarak aşağıdaki tabloyu oluşturup verileri tablo içerisine ekleyelim.</p>
<pre class="line-numbers"><code class="language-sql">--Personel Tablosunu Oluşturulması

CREATE TABLE PersonelTablosu
(
    Id INT PRIMARY KEY IDENTITY(1, 1),
    PersonelTip INT NOT NULL,
    PersonelAdi VARCHAR(255)
);

--Personel Tablosuna Veri Eklenmesi

INSERT INTO PersonelTablosu
(
    PersonelTip,
    PersonelAdi
)
VALUES
(1, 'Yavuz'),
(1, 'Hasan'),
(1, 'Bilge'),
(1, 'Pelin'),
(1, 'Büşra'),
(1, 'Kübra'),
(2, 'Mustafa'),
(2, 'Fevziye'),
(2, 'Necla'),
(2, 'Halis');
--Personel Tablosunun Kontrol Edilmesi

SELECT *
FROM PersonelTablosu;</code></pre>
<p>Şimdi elimizde bir personel tablosu var. Bu personel tablosunda aşağıdaki kodu çalıştıralım.</p>
<pre class="line-numbers"><code class="language-sql">--İlk kodumuz

SELECT ',' + PersonelAdi
FROM PersonelTablosu
FOR XML PATH('');</code></pre>
<p>Bu kodu çalıştırdığınızda aşağıdaki sonucu alacaksınız.</p>
<p><img decoding="async" class="alignnone wp-image-10698 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-1.jpg" alt="SQL Server'da STUFF ve FOR XML PATH'in Birlikte Kullanımı" width="700" height="458" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-1-315x206.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-1-459x300.jpg 459w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-1-206x135.jpg 206w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere en başta virgül var. Bu virgülü nasıl kaldıracağız. STUFF fonksiyonu ile bu işlemi yapıyoruz. Aşağıdaki kodu çalıştıralım.</p>
<pre class="line-numbers"><code class="language-sql">--İkinci kodumuz

SELECT PersonelAdi = STUFF(
                     (
                         SELECT ',' + PersonelAdi FROM PersonelTablosu FOR XML PATH('')
                     ),
                     1,
                     1,
                     ''
                          )
FROM PersonelTablosu;</code></pre>
<p><img decoding="async" class="alignnone wp-image-10699 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-2.jpg" alt="SQL Server'da STUFF ve FOR XML PATH'in Birlikte Kullanımı" width="700" height="471" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-2.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-2-315x212.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-2-446x300.jpg 446w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-2-201x135.jpg 201w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere virgül kalktı ama satır çokladı. Bu satır çoklama işini nasıl çözeceğiz. Aşağıdaki kodu çalıştıralım.</p>
<pre class="line-numbers"><code class="language-sql">SELECT PersonelTip,
       PersonelAdi = STUFF(
                     (
                         SELECT ',' + PersonelAdi
                         FROM PersonelTablosu t1
                         WHERE t1.PersonelTip = t2.PersonelTip
                         FOR XML PATH('')
                     ),
                     1,
                     1,
                     ''
                          )
FROM PersonelTablosu t2
GROUP BY PersonelTip;</code></pre>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10700 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-3.jpg" alt="SQL Server'da STUFF ve FOR XML PATH'in Birlikte Kullanımı" width="700" height="432" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-3.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-3-315x194.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-3-486x300.jpg 486w, https://sqlserveregitimleri.com/wp-content/uploads/2021/09/sql-serverda-stuff-ve-for-xml-pathin-birlikte-kullanimi-3-219x135.jpg 219w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere PersonelTip&#8217;e göre SUBQUERY yapıp grupladığımız zaman bu sıkıntı da gitmiş oldu.</p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 860</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server&#8217;da For XML Path</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-for-xml-path</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Thu, 03 May 2018 11:30:43 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[For XML Path]]></category>
		<category><![CDATA[For XML Path Kullanımı]]></category>
		<category><![CDATA[SQL Server For XML Path]]></category>
		<guid isPermaLink="false">http://sqlserveregitimleri.com/?p=5854</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da For XML Path kullanımından bahsedeceğim. SQL Server&#8217;da For XML Path ifadesi XML çıktısı almak için kullanılan bir ifadedir. For...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da For XML Path kullanımından bahsedeceğim.</p>
<p>SQL Server&#8217;da For XML Path ifadesi XML çıktısı almak için kullanılan bir ifadedir. For XML Explicit kullanımına benzer bir yapıdır. Kullanımı daha kolaydır. Hiyerarşi yapısını otomatik şekilde oluşturulur. Örnek kullanımını Northwind veritabanını kullanarak inceleyelim.</p>
<pre class="line-numbers"><code class="language-sql">SELECT *
FROM dbo.Categories
FOR XML PATH;</code></pre>
<p>Yukarıdaki sorguyu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14254 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2018/05/sql-serverda-for-xml-path-1.jpg" alt="SQL Server'da For XML Path" width="700" height="422" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2018/05/sql-serverda-for-xml-path-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2018/05/sql-serverda-for-xml-path-1-315x190.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2018/05/sql-serverda-for-xml-path-1-498x300.jpg 498w, https://sqlserveregitimleri.com/wp-content/uploads/2018/05/sql-serverda-for-xml-path-1-224x135.jpg 224w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 577</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
