T-SQL: Para Veri Türünden Kesirli Noktaların Kaldırılması
SQL Server’da finansal verilerle çalışırken, özellikle T-SQL dilini kullanıyorsanız, sayıları kesirli noktalarından arındıracak şekilde manipüle etmeniz gerekebilir. SQL Server 2005’te Para veri türünü kullananlar için, sayıyı bir dizeye dönüştürüp ardından kesirli noktayı dize manipülasyonu ile kaldırmaktan daha iyi bir yaklaşım olup olmadığını merak edebilirsiniz. Gelin bunu başarmanın verimli bir yolunu keşfedelim.
Yaygın Yaklaşım
Pek çok SQL geliştiricisi, Para türlerinden kesirli noktaları kaldırmak için öncelikle sayıyı bir varchar’a dönüştürüp ardından REPLACE
işlevini kullanır. Örneğin:
SELECT REPLACE(1.23, '.', ''), REPLACE(19.99, '.', '')
Bu kod, kesirli noktayı değiştirir ve istenen tam sayı olan 123 ve 1999’u sonuç olarak verir. Ancak, bu yöntem hantal ve performans veya okunabilirlik açısından ideal hissettirmeyebilir.
Daha Verimli Bir Çözüm
Daha zarif bir çözüm, gereksiz dönüşümler olmadan aynı sonuca ulaşmanızı sağlar. Dizeye dönüştürmek yerine, Para değerini 100 ile çarpabilir ve ardından INT’ye dönüştürebilirsiniz. Bu yöntem basit ve T-SQL özelliklerini etkili bir şekilde kullanır. İşte nasıl yapabileceğiniz:
Adım Adım Uygulama
- Para Değerini 100 ile Çarpın: Bu, kesirli noktayı iki basamak sağa kaydırır. Örneğin,
1.23
123
olur ve19.99
1999
olur. - INT’ye Dönüştürün: INT’ye dönüştürme, herhangi bir kesirli noktayı atar ve sizi temiz, tam bir sayıyla bırakır.
Örnek Uygulama
Çözümü uygulamada göstermek için pratik bir örnek:
SELECT CAST(1.23 * 100 AS INT) AS Amount1,
CAST(19.99 * 100 AS INT) AS Amount2
Bu kod, şunları döndürecektir:
Amount1
: 123Amount2
: 1999
Bu Yöntemin Tercih Edilmesinin Sebepleri
- Performans: Çarpma ve dönüştürme, genellikle dize manipülasyonundan daha hızlıdır, özellikle daha büyük veri setleri ile çalışırken.
- Basitlik: Kod, okunması ve sürdürülmesi daha kolaydır, bu da SQL scriptlerini gözden geçiren veya kullanan herkes için basit hale getirir.
- Veri Bütünlüğü: Sayı türleri içinde kalıp dizeye dönüşümden kaçınarak, yanlış biçimlendirme sonucu hata veya beklenmedik davranış riski en aza indirilir.
Sonuç
SQL Server 2005’te T-SQL kullanarak, Para veri türlerinden kesirli noktaları, değeri 100 ile çarpıp bir tam sayıya dönüştürerek verimli bir şekilde kaldırabilirsiniz. Bu yaklaşım daha basit, daha hızlıdır ve veri bütünlüğünü sağlar. Bir sonraki sorgularınızda Para değerlerini manipüle etmeniz gerektiğinde, daha temiz ve etkili bir çözüm olarak bu yöntemi göz önünde bulundurun.