<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>SQL&#8217;de UNION / UNION ALL ile birlikte ORDER BY kullanmak yazısına yapılan yorumlar</title>
	<atom:link href="http://www.ahmetkaymaz.com/wp-seo-link-holder_akaymaz.php/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/feed/?404;http://www.ahmetkaymaz.com:80/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ahmetkaymaz.com/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/</link>
	<description>SQL Server, C#, VB.NET, ASP.NET, AJAX ile ilgili örnek kitap ve ipuçları</description>
	<lastBuildDate>Fri, 03 Sep 2010 13:59:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Ahmet Kaymaz tarafından</title>
		<link>http://www.ahmetkaymaz.com/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/comment-page-1/#comment-995</link>
		<dc:creator>Ahmet Kaymaz</dc:creator>
		<pubDate>Mon, 05 Jan 2009 13:51:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.ahmetkaymaz.com/union-union-all-ile-birlikte-order-by-kullanmak/2007/01/02/#comment-995</guid>
		<description>Aşağıdaki örnekte olduğu gibi SELECT sorguları arasında istediğiniz kadar UNION veya UNION ALL kullanabilirsiniz.
&lt;code&gt;
SELECT Kolonlar FROM Tablo WHERE Kolon=1
UNION ALL
SELECT Kolonlar FROM Tablo WHERE Kolon=1
UNION ALL
SELECT Kolonlar FROM Tablo WHERE Kolon=1
UNION ALL
SELECT Kolonlar FROM Tablo WHERE Kolon=1
. . . 
&lt;/code&gt;
Burada dikkat edilmesi gereken konu her sorgunun aynı sayıda ve tipte kolon döndürmesindir. 

Bu arada eğer yanlış anlamadıysam aynı tabloda farklı kolonlar üzerinde sorgu yapıp tek bir kayıt dizisi döndürmek istiyorsun. Bunun için neden UNION kullanmak istediğini anlamadım.</description>
		<content:encoded><![CDATA[<p>Aşağıdaki örnekte olduğu gibi SELECT sorguları arasında istediğiniz kadar UNION veya UNION ALL kullanabilirsiniz.<br />
<code><br />
SELECT Kolonlar FROM Tablo WHERE Kolon=1<br />
UNION ALL<br />
SELECT Kolonlar FROM Tablo WHERE Kolon=1<br />
UNION ALL<br />
SELECT Kolonlar FROM Tablo WHERE Kolon=1<br />
UNION ALL<br />
SELECT Kolonlar FROM Tablo WHERE Kolon=1<br />
. . .<br />
</code><br />
Burada dikkat edilmesi gereken konu her sorgunun aynı sayıda ve tipte kolon döndürmesindir. </p>
<p>Bu arada eğer yanlış anlamadıysam aynı tabloda farklı kolonlar üzerinde sorgu yapıp tek bir kayıt dizisi döndürmek istiyorsun. Bunun için neden UNION kullanmak istediğini anlamadım.</p>
]]></content:encoded>
	</item>
	<item>
		<title>UNSAL OSMA tarafından</title>
		<link>http://www.ahmetkaymaz.com/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/comment-page-1/#comment-994</link>
		<dc:creator>UNSAL OSMA</dc:creator>
		<pubDate>Mon, 05 Jan 2009 13:42:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.ahmetkaymaz.com/union-union-all-ile-birlikte-order-by-kullanmak/2007/01/02/#comment-994</guid>
		<description>ahmet hocam merhaba;
ben bu unınon all komutunu ikikez nasıl kullanırım  acaba
çünkü tek tablom var ve üç adet de sutun bu sutunların her birini ayrı ayrı sorgulayacağım için unuıno 3 kez kullanmam gerekli ne yapmalıyım.</description>
		<content:encoded><![CDATA[<p>ahmet hocam merhaba;<br />
ben bu unınon all komutunu ikikez nasıl kullanırım  acaba<br />
çünkü tek tablom var ve üç adet de sutun bu sutunların her birini ayrı ayrı sorgulayacağım için unuıno 3 kez kullanmam gerekli ne yapmalıyım.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Buket tarafından</title>
		<link>http://www.ahmetkaymaz.com/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/comment-page-1/#comment-529</link>
		<dc:creator>Buket</dc:creator>
		<pubDate>Sun, 12 Oct 2008 23:09:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.ahmetkaymaz.com/union-union-all-ile-birlikte-order-by-kullanmak/2007/01/02/#comment-529</guid>
		<description>Teşekkürler Ahmet Bey, çok işime yaradı.
Saygılar,</description>
		<content:encoded><![CDATA[<p>Teşekkürler Ahmet Bey, çok işime yaradı.<br />
Saygılar,</p>
]]></content:encoded>
	</item>
	<item>
		<title>Ahmet Kaymaz tarafından</title>
		<link>http://www.ahmetkaymaz.com/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/comment-page-1/#comment-249</link>
		<dc:creator>Ahmet Kaymaz</dc:creator>
		<pubDate>Tue, 11 Mar 2008 08:45:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.ahmetkaymaz.com/union-union-all-ile-birlikte-order-by-kullanmak/2007/01/02/#comment-249</guid>
		<description>Bilal bey,

haklısınız eğer TOP kullanılmazsa hata alınır. Fakat mantıklı olan da bu değli mi zaten. Yani burada TOP ifadesini kaldırdığımızda o zaman hem kötü bir query hem de amacının dışına çıkmış olmaz mı. Çünkü bu durumda aslında tüm Urun tablosunu sorgulamış olacağız o zaman da subquery kullanmaya gerek kalmaz diye düşünüyorum. Bu durumda aşağıdaki yapıyı kullanmak daha mantıklı olacaktır.

&lt;code&gt;SELECT GrupId,UrunId,UrunAd FROM Urun1
WHERE GrupId=1
UNION
SELECT GrupId,UrunId,UrunAd FROM Urun1
WHERE GrupId=2&lt;/code&gt; Ama yine de makaledeki subquery yapısını kullanmak gerekiyorsa o zaman &quot;TOP 100 PERCENT&quot; kullanarak bu işi çözebiliriz. Çünkü execution plan&#039;da &quot;TOP 100 PERCENT&quot; etkisiz eleman gibi çalışır yani performans kaybı yaşatmaz.

Ayrıca TOP yapmadan grupları kendi içerisinde sıralamak istersek SQL 2005&#039;teki Ranking Function&#039;lar işimizi görebilir.</description>
		<content:encoded><![CDATA[<p>Bilal bey,</p>
<p>haklısınız eğer TOP kullanılmazsa hata alınır. Fakat mantıklı olan da bu değli mi zaten. Yani burada TOP ifadesini kaldırdığımızda o zaman hem kötü bir query hem de amacının dışına çıkmış olmaz mı. Çünkü bu durumda aslında tüm Urun tablosunu sorgulamış olacağız o zaman da subquery kullanmaya gerek kalmaz diye düşünüyorum. Bu durumda aşağıdaki yapıyı kullanmak daha mantıklı olacaktır.</p>
<p><code>SELECT GrupId,UrunId,UrunAd FROM Urun1<br />
WHERE GrupId=1<br />
UNION<br />
SELECT GrupId,UrunId,UrunAd FROM Urun1<br />
WHERE GrupId=2</code> Ama yine de makaledeki subquery yapısını kullanmak gerekiyorsa o zaman &#8220;TOP 100 PERCENT&#8221; kullanarak bu işi çözebiliriz. Çünkü execution plan&#8217;da &#8220;TOP 100 PERCENT&#8221; etkisiz eleman gibi çalışır yani performans kaybı yaşatmaz.</p>
<p>Ayrıca TOP yapmadan grupları kendi içerisinde sıralamak istersek SQL 2005&#8242;teki Ranking Function&#8217;lar işimizi görebilir.</p>
]]></content:encoded>
	</item>
	<item>
		<title>bilal tarafından</title>
		<link>http://www.ahmetkaymaz.com/2007/01/02/union-union-all-ile-birlikte-order-by-kullanmak/comment-page-1/#comment-248</link>
		<dc:creator>bilal</dc:creator>
		<pubDate>Mon, 10 Mar 2008 14:08:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.ahmetkaymaz.com/union-union-all-ile-birlikte-order-by-kullanmak/2007/01/02/#comment-248</guid>
		<description>sizin bu çözüm top kullanınca geçerli. tümü listelenmeye kalkınca çakıyor.


The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.</description>
		<content:encoded><![CDATA[<p>sizin bu çözüm top kullanınca geçerli. tümü listelenmeye kalkınca çakıyor.</p>
<p>The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
