Hoşgeldiniz

 

 

Oturum Açın | Kaydol | Son Mesajlar | Mesajlarım | Yardım
kategorisinde Ara

sql char kolonu integera çevirmek

En son mesaj Penratu tarafından 11-03-2008, 18:36 atıldı. Başlığa toplam 2 cevap verildi.
Sort Posts: Önceki Sonraki
  •  10-14-2008, 21:08 37396

    sql char kolonu integera çevirmek

    Arkadaşlar Char veritipinde bir kolon var . Bu kolonu int e çevirmek dayet basit aslında SELECT CONVERT(int,B.CariKod) As CariKod FROM tablo dedik mi işlem tamam veya CAST ile de yapmak mümkün . Bütün kolonlar integer değerler girersem sorun yok , fakat benim kolonumdaki bütün veriler integer değil bu yüzden sorgu o kolonda hata veriyor . Bunu nasıl engelleyebilirim. Hata vermesin integer mı değil mi kontrol etsin.

    Bunu yapmamdaki asıl amaç sıralama işlemi yapmak. Örneğin o kolonda sırayla 1,2,3,4,5,6,7,8,9,10,11,12,a22,asd,frt,33 gibi veriler var bunu SQL hepsini char olarak gördüğü için şu sırada gösteriyor.
    1,10,11,12,2,3,33,4,5,6,7,8,9,a22,asd,frt
    Ben şu sırada versin istiyorum
    1,2,3,4,5,6,7,8,9,10,11,12,33,a22,asd,frt gibi. Sayı değerine göre
  •  11-03-2008, 17:46 37742 cevaben 37396

    Cvp: sql char kolonu integera çevirmek

    Aklıma ilk gelen yöntemi söylüyorum. Belki daha da kısası vardır.

    Öncelikle bir user Defined function yaparım. Burası parametre olarak char alır. Try içerinde convert işlemini yaparım ve onu döndürürüm. Catch'te ise NULL döndürürüm.

    Böylelikle int olanları ve olmayanalrı ayıklarım.

    Sonra test için şöyle bir sorgu yazarım:

    select CariKod, dbo.BenimFunction(CariKod) as MyCariKod from CariHesaplar

    Sonuç şuna benzer bir şey olur:
    CariKod    MyCariKod
    ---------   --------------
       1                     1
       2                     2
       3                     3
     75                    75
    11                     11
    af                       NULL
    a22                    NULL

    Sonra öldürücü darbeyi vurudum:

    Select CariKod,dbo.BenimFunction(CariKod) as MyCariKod from CariHesaplar where MyCariKod is not null order by 2
    UNION
    Select CariKod,dbo.BenimFunction(CariKod) from CariHesaplar where CariHesaplar is null order by 1

    Bu da bunun çözümü olur.

    Belki temp tabloya belki de insert select'le kısaltılabilir. Ama denemek lazım. Dediğim gibi, aklıma ilk gelen çözüm bu.


    Aramaya inanın...
    Yalçın
  •  11-03-2008, 18:36 37753 cevaben 37742

    Cvp: sql char kolonu integera çevirmek

    senin hatan tam olarak ne yani diyorsun ki ben bütün kolonlardaki değerleri yazıyorum hata sql char kolonunu integera çevirmek için gerekli kodu yazıyorum ama en sonunda yine hata veriyor diyorsan c#ta hata yakalama kodları vardır onları yazarsan sana yardımcı olucaktır

View as RSS news feed in XML
Powered by Community Server, by Telligent Systems