none
En büyük sayıyı çekme ? Coulumn Type nvarchar ?

    Soru

  • Merhaba

    ColumnType nvarchar olan bir kolonum var. Ve aşağıdaki gibi kayıt tutuyor.

    0000001

    0000002

    0000003

    0000004

    ............

    0000112

    Bu kayıtlar arasında en büyük olan kayıtı nasıl çekebilirim ? Yani 0000112 kayıtını çekmem gerekiyor. Daha büyük bir kayıt var ise onu çekmem gerekiyor ?

    21 Haziran 2012 Perşembe 16:11

Yanıtlar

  • Merhaba DeveloperoneCSharp;

    select MAX(o.OgrenciNo) from OGRENCILER as o

    // alias sevmiyenler için

    select MAX(ColumnAdi) from TABLOADI

    /// SQL Sorgusu olarak (Merak Ediyorsan OgrenciNo columnu varchar (10) ve identity değil)

    MAX Fonksiyonunu kullandık, MAX Fonksiyonu DAİMA integer çevireceği için sıkıntı olmayacaktır.
    gibi bir şey işini görecektir ?


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com



    • Düzenleyen Exe.Cute 21 Haziran 2012 Perşembe 16:30
    • Yanıt Olarak İşaretleyen MSDN.CSharp 21 Haziran 2012 Perşembe 16:54
    21 Haziran 2012 Perşembe 16:21
  • MAX ta problem çıkıyor diye hatırlıyorum. Özellikle 001 ve 010 kayıtı var ise 1 alıyor galiba 10 yerine ama yinede denemek gerekiyor.

    Order by cast(nVarcharColumn as integer) desc bu kod kesin çözüm.

    • Yanıt Olarak İşaretleyen MSDN.CSharp 21 Haziran 2012 Perşembe 16:54
    21 Haziran 2012 Perşembe 16:53

Tüm Yanıtlar

  • Merhaba DeveloperoneCSharp;

    select MAX(o.OgrenciNo) from OGRENCILER as o

    // alias sevmiyenler için

    select MAX(ColumnAdi) from TABLOADI

    /// SQL Sorgusu olarak (Merak Ediyorsan OgrenciNo columnu varchar (10) ve identity değil)

    MAX Fonksiyonunu kullandık, MAX Fonksiyonu DAİMA integer çevireceği için sıkıntı olmayacaktır.
    gibi bir şey işini görecektir ?


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com



    • Düzenleyen Exe.Cute 21 Haziran 2012 Perşembe 16:30
    • Yanıt Olarak İşaretleyen MSDN.CSharp 21 Haziran 2012 Perşembe 16:54
    21 Haziran 2012 Perşembe 16:21
  • MAX ta problem çıkıyor diye hatırlıyorum. Özellikle 001 ve 010 kayıtı var ise 1 alıyor galiba 10 yerine ama yinede denemek gerekiyor.

    Order by cast(nVarcharColumn as integer) desc bu kod kesin çözüm.

    • Yanıt Olarak İşaretleyen MSDN.CSharp 21 Haziran 2012 Perşembe 16:54
    21 Haziran 2012 Perşembe 16:53
  • Merhaba DeveloperoneCSharp;

    select MAX(o.OgrenciNo) from OGRENCILER as o

    // alias sevmiyenler için

    select MAX(ColumnAdi) from TABLOADI

    /// SQL Sorgusu olarak (Merak Ediyorsan OgrenciNo columnu varchar (10) ve identity değil)

    MAX Fonksiyonunu kullandık, MAX Fonksiyonu DAİMA integer çevireceği için sıkıntı olmayacaktır.
    gibi bir şey işini görecektir ?


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com



    Max() integer cevirimi yapmaz. Cevap yine de Max(). Integer'a cast etmek akillica olur aksi halde max alfabetik dizilimde max verir. ornek:

    1, 2, 11, 3, 211

    1, 11, 2, 211, 3 seklinde dizilir.

    @DeveloperoneCSharp,

    Oyle bir kolon neden nvarchar? Char ya da NChar olursa daha efektif olacak (hem depolama hem performans acisindan). Daha da oteye neden "karakter" tipinde.

    22 Haziran 2012 Cuma 08:27