﻿<?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>Distinct ile Row_Number Fonksiyonu Kullanımı &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/distinct-ile-row_number-fonksiyonu-kullanimi/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Wed, 23 Feb 2022 18:35:33 +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 Distinct ile Row_Number Fonksiyonu Kullanımı</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-distinct-ile-row_number-fonksiyonu-kullanimi</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Wed, 17 Jul 2019 17:58:43 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Distinct ile Row_Number Fonksiyonu Kullanımı]]></category>
		<category><![CDATA[Row_Number Fonksiyonu Kullanımı]]></category>
		<category><![CDATA[SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı]]></category>
		<guid isPermaLink="false">http://sqlserveregitimleri.com/?p=6923</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da Distinct ile Row_Number fonksiyonu kullanımından bahsedeceğim. Aslında bu makaleyi yazma fikri kod yazarken ortaya çıktı. Bir tablodan veri çekerek...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da <strong>Distinct</strong> ile <strong>Row_Number</strong> fonksiyonu kullanımından bahsedeceğim.</p>
<p>Aslında bu makaleyi yazma fikri kod yazarken ortaya çıktı.</p>
<p>Bir tablodan veri çekerek başka bir tabloya insert işlemi yapıyordum. Tabi ki bu tablo üzerinde tekrar eden satırlar mevcuttu. Bu satırları Distinct yardımı ile teke düşürdüm fakat Row_Number fonksiyonunu uyguladığım zaman tekrar eden satırların yeniden geldiğini aslında <strong>Distinct</strong> yapamadığımı fark ettim.</p>
<p>Konu hakkında acaba benim gibi hata yapan oldu mu diye aranırken aslında pek de bir şey bulamadım. Sadece küçük bir örnek gözüme çarptı ve bu örnekten yola çıkarak sorgumu başarı ile oluşturdum. (Tabi bu yazı İngilizceydi ve hemen Türkçe bir makale yazma gereği duydum.)</p>
<p>Şimdi bu işlemi Northwind veritabanını kullanarak örneklendirmeye çalışacağım ki sizin de başınıza gelirse benzer çözüm uygulayabilirsiniz.</p>
<p>Northwind veritabanı üzerinde kullanacağım tablo <strong>[Order Details]</strong> tablosudur.</p>
<p>Şimdi bu tabloya <strong>Select</strong> çekelim.</p>
<pre class="line-numbers"><code class="language-sql">SELECT *
FROM dbo.[Order Details];</code></pre>
<p>Sonucu aşağıda görmektesiniz. Tekrar eden satırlar mevcut.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-6926 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-1.jpg" alt="SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı" width="700" height="435" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-1-315x196.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-1-483x300.jpg 483w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-1-217x135.jpg 217w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Toplam satır sayısını incelediğimizde ise <strong>2155</strong> satır olduğunu görmektesiniz.</p>
<p><img decoding="async" class="alignnone wp-image-6927 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-2.jpg" alt="SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı" width="700" height="241" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-2.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-2-315x108.jpg 315w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Şimdi tablomuzda <strong>OrderID</strong> alanına <strong>Distinct</strong> çekerek kaç satır veri geldiğini tekrar kontrol edelim. Sorgusu aşağıdadır.</p>
<pre class="line-numbers"><code class="language-sql">SELECT DISTINCT
       OrderID
FROM dbo.[Order Details];</code></pre>
<p>Sorguyu çalıştırdığınız zaman aşağıdaki sonucu göreceksiniz.</p>
<p><img decoding="async" class="alignnone wp-image-6928 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-3.jpg" alt="SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı" width="700" height="478" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-3.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-3-315x215.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-3-439x300.jpg 439w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-3-198x135.jpg 198w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere satırlar teke düşmüş oldu. Toplam satır sayısını kontrol edelim.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6930 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-4.jpg" alt="SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı" width="700" height="239" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-4.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-4-315x108.jpg 315w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Toplam satır sayısı <strong>830</strong> geldi.</p>
<p>Şimdi gelelim esas meseleye. <strong>OrderID</strong> sütunundan sonra <strong>Row_Number</strong> fonksiyonunu kullanalım. Kodu aşağıda görmektesiniz.</p>
<pre class="line-numbers"><code class="language-sql">SELECT DISTINCT
       OrderID,
       ROW_NUMBER() OVER (ORDER BY OrderID ASC) AS SıraNo
FROM dbo.[Order Details];</code></pre>
<p>Kodu çalıştırdığımız zaman <strong>Distinct</strong> ifadesinin çalışmadığını göreceksiniz. Sonucu aşağıda görmektesiniz.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6931 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-5.jpg" alt="SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı" width="700" height="481" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-5.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-5-315x216.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-5-437x300.jpg 437w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-5-196x135.jpg 196w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere <strong>2155</strong> satır sonuç geldi. Bizim istediğimiz bu değildi. <strong>830</strong> satır gelmesini ve <strong>Row_Number</strong> fonksiyonunun 1&#8217;den başlayıp 830&#8217;a kadar numara vermesini istiyoruz.</p>
<p>Peki çözümü nasıl sağlayacağız?</p>
<p>Çözümü <strong>Distinct</strong> ifadesi ile bir sorgu oluşturmak ve bunu bir tablo gibi gösterip (iç tablo haline getirmek) dış tabloda <strong>Row_Number</strong> fonksiyonunu kullanmak.</p>
<p>Ne demek istiyorum kod üzerinde görelim.</p>
<pre class="line-numbers"><code class="language-sql">SELECT ICTABLO.OrderID,
       ROW_NUMBER() OVER (ORDER BY ICTABLO.OrderID) AS SıraNo
FROM
(SELECT DISTINCT OrderID FROM dbo.[Order Details]) AS ICTABLO;</code></pre>
<p>Sorguyu çalıştırdığınız zaman aşağıdaki sonucu göreceksiniz.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6932 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-6.jpg" alt="SQL Server'da Distinct ile Row_Number Fonksiyonu Kullanımı" width="700" height="480" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-6.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-6-315x216.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-6-438x300.jpg 438w, https://sqlserveregitimleri.com/wp-content/uploads/2019/07/sql-serverda-distinct-ile-row-number-fonksiyonu-kullanimi-6-197x135.jpg 197w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere istediğimiz gibi kayıtları teke düşürüp numaralandırdık.</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"> 896</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
