SQL Order By Komutu – Verileri Sıralama

SQL Order By Komutu – Verileri Sıralama

30 Ağustos 2018 1 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 419
Yaklaşık okuma süresi : 3 DK
SQL Group By Komutu – Veri Gruplandırma
SQL Where Komutu Wildcard

SQL Order By Komutu – Verileri Sıralama , dersimiz ile sql eğitim setime devam ediyorum. Bu dersimizde SQL Select Komutu ile aldığımız verileri istediğimiz kolonlara göre sıraya dizmemizi sağlamaktadır. Düşünsenize 1000+ sayıda kayıt içeren bir select sorgusu yazdınız ama kayıtlar karman çorman, en son kayıt edilen satır en üstte ortalarda olması gereken kayıtta en başlarda… Hoş bir şey değildir.. Gelin SQL Order By Komutu – Verileri Sıralama işlemini nasıl yapacağımızı görelim.

 

SQL Order By Komutu – Verileri Sıralama

Order By komutu kayıtları sıralamamızı sağlar demiştik. Order By komutunu Select komutu ile birlikte kullanırız. Sorgu üzerinde görelim.

Advertisements
SELECT  *  FROM [dbo].[PERSONEL_TANIMLARI]
order by per_RECno

Yukarıdaki kodlara baktığımızda * ile tüm kayıtları aldık ve per_RECno kolonundaki verilere göre sıraladık.

NOT:  Kolon sayısal değer içeriyorsa 0-9, metinsel veri içeriyorsa a-z yada tarihsel veri içeriyorsa tarihe göre sıralar.

ASC ve DESC Kullanımı

Asc, Ascending  0-9, a-z olarak yani küçük olan en üstte olacak şekilde sıralar.

Desc, Descending  9-0, z-a olarak yani büyük olan en üstte olacak şekilde sıralar. (Tersten)

Görelim

SELECT  *  FROM [dbo].[PERSONEL_TANIMLARI]
order by per_RECno ASC

Sıralamak istediğimiz kolonları yazdıktan sonra belirtiriz.

 

Birden Fazla Kolon Kullanmak

Birden fazla kolona göre sıralama yapacaksak Identity Specification 1,1 olan kolonları yazmamız mantıksız olacaktır. Çünkü Bu kolon hiçbir şekilde aynı olmayacağından dolayı hep bu kolona göre sıralanacak yazdığımız diğer kolonlar dikkate alınmamış olacaktır.

SELECT
	[per_RECno] AS KAYITNO
	,[per_Kilit] AS KİLİT
	,[per_Adi] AS ADI
	,[per_Soyadi] AS SOYADI
	,per_Adi + ' ' + per_Soyadi AS AD_SOYAD
	,[per_TC] AS TC
	,[per_Telefon] AS TELEFON
	,[per_DogumTarih] AS DOĞUM_TAR
	,[per_Brut_Maas] AS MAAS
	,[per_Avans] AS AVANS
	,[per_Adres] AS ADRES
	,[per_Izın_Gun_Sayisi] AS İZİN
	,[per_Gorev] AS GOREV
	,[per_Departman] AS DEPARTMAN
	,[per_Egitim] AS EĞİTİM
	,[per_Cinsiyet] AS CİNSİYET
	,[per_Medeni_Hal] AS MEDENİ_HAL
	,[per_Cocuk_Adet] AS ÇOCUK
	,[per_Kayit_Tarihi] AS KAYIT_TARİH
	,[per_Kaydeden] AS KAYDEDEN
	,[per_Degistirme_Tarihi] AS DEĞİŞTİRME_TARİH
	,[per_Degistiren] AS DEĞİŞTİREN
	,[per_Aktif] AS AKTİF
FROM [dbo].[PERSONEL_TANIMLARI]
ORDER BY   per_Egitim , AD_SOYAD , per_Departman ASC

Bu sorgumuz kolon alias ‘larını da verdik. Yani AS ile kolonun görünen adlarını da değiştirdik. Bunu neden yazdığımı order by kısmına bakığınızda anlayacağınızı düşünüyorum.

İlgili İçerik  SQL Truncate Table - Tablo Sil & Oluştur

Burada ilk kolondan sonraki kolona doğru sıralama yapılacaktır. Şöyle açıklayayım.

Kayıtları önce per_Eğitim kolonundaki verilere göre a-z olarak sıralar, sonra bu sıralamayı bozmadan kayıtları AD_SOYAD adlı sanal kolonundaki verilere göre a-z olarak sıralar, bu sıralamayı da yaptıktan sonra per_Departman kolonundaki verilere göre sıralar.

Elimizdeki kayıtlara göre,

L harfi Ö harfinden önce olduğundan Lisans ‘ları en başta, Ön Lisans ‘ları ise Lisans kayıtlarından sonra olacak şekilde sıralar.

Sonrasında önce Lisans olan kayıtları AD_SOYAD kolondaki verilere göre sıralar. Lisanslar yine en başta kalır. Eğitimi Lisans olan personelleri ad soyadlarına göre sıralar. Burada Lisans Ahmet XXXX en başta, Ön Lisans Ahmet YYYY Ön Lisansların en başında olacaktır. Sonra eğitimi Lisans ve Adları Ahmet oları kendi içinde Departmanlarına göre sıralar.

Açıklamayı pekiştirmek için şu görseli de vereyim.

sql order by

Görselde gördüğünüz gibi Lisans olan Ahmet en başta iken Ön Lisans Olan Ahmet sonlara doğru geldi. Bununla birlikte iyice anladığınızı düşünüyorum.

 

*** İlk kolondan son kolona doğru kendi içinde sıralama yaparak gider.

*** Alias ( AS ) verdiğiniz kolonların Alias’larını yazabilirsiniz.

*** Oluşturduğunuz sanal kolonları kullanabilirsiniz.

*** Order By, Where komutundan önce olamaz. Önce Where şartlarınızı yazarsınız sonrasında Order By komutunu yazarsınız.

Select TOP Kullanımı

Select komutundan hemen sonra TOP n ifadesini kullanırsanız n yerine kaç yazarsanız o kadar kayıt getirecektir. Örn TOP 10 yazdınız veridğiniz sıralamaya göre sadece 10 tane kayıt gelecektir.


SQL Order By Komutu – Verileri Sıralama , dersimizde bu kadar dostlar. Diğer derslerimizde görüşmek üzere.

Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.

Sağlıcakla ve Takipte Kalın. 😉

SQL Group By Komutu – Veri Gruplandırma
SQL Where Komutu Wildcard