Varchar veritipindeki sayı sütununu Order by ile sıralamak!

SQL ve Oracle veritabanında bazen verimliliği üst seviyede tutmak istediğimiz durumlarda sayı veri tipinde tanımlayacağımız kolonları varchar şeklinde belirtip o kolonu sayısal verileri girmek için kullanabiliriz.

Bu tür durumların dezavantajlarından biriside sıralama yapmak istediğimizde girilen sayısal değerleri varchar olarak algıladığı için düzgün sıralayamamasıdır.

Bunun için CAST fonksiyonunu kullanarak veri tipleri arasında dönüşüm yaptırabiliriz. Aşağıdaki kod örneğinde;

Sicil kolonu VARCHAR olarak tanımlanmıştır. order by ile sıralama yaptırırken numara olarak sıralatabilmek için CAST fonksiyonunu kullanalım.

SELECT Sicil, Ad, Soyad FROM Personel WHERE sicil IS NOT NULL 
ORDER BY CAST(Sicil AS INT), AD, SOYAD

Bu şekilde kullandığımızda sicil kolonunu sayısal olarak dönüştürüp sıralamayı sayısal olarak gerçekleştirecektir.