MsSql Replace Kullanımı Ders 14
Merhaba,
Bir önceki yazımızda MsSql de cast yapısını incelemiş son cümlemizde de bir sorun örneği oluşturmuştuk. Sorunumuz  şu :
Nvarchar veri tipli bir alanda biz virgül ile ayrılan sayılar tutuyoruz. Örn : 7,5 veya 4,67 veya 99,12 gibi…
Gördüğünüz üzere hem verileri tuttuğumuz alan hatalı, hem verileri tutuş şeklimiz hatalı. Bu yapıda biz Sql in bize sunduğu Sum fonksiyonunu kullanamayız. Pek bu durumdan kurtulmak için ne yapabiliriz.
1. Tablodaki veri tipi alanını değiştiririz.
2. Tablodaki verileri alır tekrar düzenleyip yerine yazarız.
3. Bu sorunu gidip kendi yazdığımız programda çözeriz.
İnanıyorum daha bir çok yol bulunabilir ancak benim anlatacağım yol biraz daha farklı.
REPLACE komutu bir verinin içerisinde belli alanları belirleyeceğimiz alanlarla değiştirmeye yaramaktadır.
Yani :
ankara yazısının içerisinde ki a harflerinin e harfi ile değiştirilmesi gibi. sonuç : enkere :):)
Aynı yapıyı yukarıdaki sorumuz içinde yapabilir tüm virgülleri nokta yapabiliriz.
Komutun kullanım şekli ;
REPLACE(ANKARA,’,’,’.’) yani deÄŸiÅŸtirilecek olan kolun ya da deÄŸer, sonra deÄŸiÅŸtirilmesini istediÄŸimiz eski deÄŸer , deÄŸiÅŸtirilmesini istediÄŸimiz yeni deÄŸer.
Gördüğünüz üzere replace kullanımı çok kolay. Şimdi sorumuza geri dönelim.
1 |
SUM(CAST(REPLACE(TUTAR,',','.')AS FLOAT))AS TOPLAM |
Bakalım ne yaptık. Okumaya en iç parantezden başlıyoruz.
Replace ile tutar alanının içerisindeki virgülleri nokta yaptık.
Sonra bu alanı float veritipine cast ettik.
Float olan bu veri tipini Sum ile topladık ve komple bu değişkeni TOPLAM olarak adlandırdık.
Anlaşılmayan bir durum var ise benimle dilediğiniz zaman iletişime geçebilirsiniz.
İyi Günler Dilerim,