Ana içeriğe atla

Kayıtlar

Sql Order by String like Number

 Veritabanında string olarak kaydedilmiş sayıların sıralanması esnasında istediğimiz sonuçları alamaz bunu decimal e çevirerek işlem yapmak isteriz. Fakat kırılım birden fazla ise yani aslında birden fazla ayırma işareti kullanıldıysa Örnek olarak Order by ile yapılan sorgu sonucu ilk kolondaki gibi gelen string alanlar aslında ikinci kolondaki gibi sıral bir şekilde getirilmek istenmiştir. Bu durumda çalıştırılacak order by ifadesi aşağıda ki gibidir.   ORDER BY  CASE WHEN TRY_CONVERT( INT,REVERSE(PARSENAME(REVERSE([Kolon Adı]), 1))) IS NULL THEN 0 ELSE CONVERT( INT,REVERSE(PARSENAME(REVERSE([Kolon Adı]), 1))) END  ,  CASE WHEN TRY_CONVERT( INT,REVERSE(PARSENAME(REVERSE([Kolon Adı]), 2))) IS NULL THEN 0 ELSE CONVERT( INT,REVERSE(PARSENAME(REVERSE([Kolon Adı]), 2))) END, CASE WHEN TRY_CONVERT( INT,REVERSE(PARSENAME(REVERSE([Kolon Adı]), 3))) IS NULL THEN 0 ELSE CONVERT( INT,REVERSE(PARSENAME(REVERSE([Kolon Adı]), 3))) END
En son yayınlar