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.
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.
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.
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.