none
sql çümlesiyle bir tablonun içinde olan 3 hane olanları getir 5 hane olanları getir RRS feed

  • Soru

  • Kolay Gelsin 

    sql bir tabloda 1 den  10000 kadar aralıklı sayılar var 

    ben bir sql çümlesi yaarak bunların içinde 3 tanesini getir 2 tanesini getir 4 tanesini getir nasıl diyebilir kolay gelsin 


    Hayat Bazen Yasamaya Deger Oldugu Kadar Ölmeyede Deger

    27 Ağustos 2012 Pazartesi 21:19

Yanıtlar

  • Selam,

    Predicate olarak Function kullanman, Index kullanımını engeller. Yani LEFT(CODE,2)='00' dersen, o sorguda Index kullanılmaz ve ya Table Scan yapılır ya da Index Scan. Her halükârda büyük tablolarda veya sık uygulanan işlemlerde büyük performans sıkıntısına neden olur. Böyle kodları Production ortamına taşımadan önce dikkatli olmalısın (şayet durumun bu anlattıklarıma uygunsa).

    Hata mesajı da, CODE alanına tanımlı bir Unique Index olduğunu söylüyor ve bu nedenle aynı değeri iki kere giremezsin. Bu yazdığın UPDATE komutuyla, tüm sıfırları temizlemeye çalışıyorsun, rakamın sağında veya solunda farketmez. Bunun sonucunda da aynı değerler oluşuyor ve bu nedenle bu hatayı alıyorsun.


    Ekrem Önsoy - MCDBA, MCITP:DBA+DBD, MCSD.Net, MCSE, ITILv3 | http://ekremonsoy.blogspot.com

    29 Ağustos 2012 Çarşamba 17:08

Tüm Yanıtlar

  • SELECT * FROM LG_120_01_SERILOTN
    WHERE LEFT(CODE,2)='00'

    getiriyor tesekkürler

    ama simdide söyle bir sorun veriyor günceledigimde 

    UPDATE LG_120_01_SERILOTN SET CODE = REPLACE(code, '0', '')   sorgusu bu 

    Msg 2601, Level 14, State 1, Line 1
    Cannot insert duplicate key row in object 'dbo.LG_120_01_SERILOTN' with unique index 'I120_01_SERILOTN_I2'.
    The statement has been terminated.


    Hayat Bazen Yasamaya Deger Oldugu Kadar Ölmeyede Deger

    27 Ağustos 2012 Pazartesi 23:00
  • Selam,

    Predicate olarak Function kullanman, Index kullanımını engeller. Yani LEFT(CODE,2)='00' dersen, o sorguda Index kullanılmaz ve ya Table Scan yapılır ya da Index Scan. Her halükârda büyük tablolarda veya sık uygulanan işlemlerde büyük performans sıkıntısına neden olur. Böyle kodları Production ortamına taşımadan önce dikkatli olmalısın (şayet durumun bu anlattıklarıma uygunsa).

    Hata mesajı da, CODE alanına tanımlı bir Unique Index olduğunu söylüyor ve bu nedenle aynı değeri iki kere giremezsin. Bu yazdığın UPDATE komutuyla, tüm sıfırları temizlemeye çalışıyorsun, rakamın sağında veya solunda farketmez. Bunun sonucunda da aynı değerler oluşuyor ve bu nedenle bu hatayı alıyorsun.


    Ekrem Önsoy - MCDBA, MCITP:DBA+DBD, MCSD.Net, MCSE, ITILv3 | http://ekremonsoy.blogspot.com

    29 Ağustos 2012 Çarşamba 17:08