﻿<?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>STUFF kullanımı &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/stuff-kullanimi/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Tue, 27 Sep 2022 19:17:17 +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 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 fetchpriority="high" 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 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="(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"> 862</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
