Şartta bağlı ilk 400 kayıdın SQL ile güncellemesi

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Şartta bağlı ilk 400 kayıdın SQL ile güncellemesi

Mesaj gönderen ender_arslanturk »

Diyelim ki veritabanımız da 10000 kayıt var.

Kod: Tümünü seç

Select Top 400 Tablom Where ID>5000
Yukarıda ki şekliyle bir kod yazdığımız da bize, ilk 400 kaydı listelemektedir. Bunun aynısını SQL ile update olarak nasıl yapabilirim ?

Örnek :

Kod: Tümünü seç

Update Set Tablom Where ID>5000
Yukarıda ki SQL kodunu, belirtilen şartta ki ilk 400 kayıt için nasıl modelleyebilirim ?

Yardımlarınız için şimdiden teşekkür ederim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Şartta bağlı ilk 400 kayıdın SQL ile güncellemesi

Mesaj gönderen mussimsek »

ilk şu kadar kaydı update et gibi bir yöntem bana doğru gelmedi ancak şöyle yapabilirsiniz :

Kod: Tümünü seç

Update Tablom
Set ... 
Where ID in (Select Top 400 ID from Tablom Where ID>5000)
Kolay gelsin.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Şartta bağlı ilk 400 kayıdın SQL ile güncellemesi

Mesaj gönderen akdatilla »

Merhaba
informix gibi bazı veritabanlarında satır numarasını gösteren gizli alan vardır.
Ancak rowid'nin 400 olması bu satırın 400.satır olduğu anlamına gelmez.
Eğer tablonuzdaki kayıtların rowid'ye göre sıralı olduğunu düşünersek, 400.satırın rowid'sininde ne olduğunu biliyorsak (örnek 785) şöyle bir sorgu işinizi görür sanırım:

Kod: Tümünü seç

update tablom set alan1=100 where rowid<=785
kolay gelsin
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Re: Şartta bağlı ilk 400 kayıdın SQL ile güncellemesi

Mesaj gönderen ender_arslanturk »

mussimsek yazdı:ilk şu kadar kaydı update et gibi bir yöntem bana doğru gelmedi ancak şöyle yapabilirsiniz :

Kod: Tümünü seç

Update Tablom
Set ... 
Where ID in (Select Top 400 ID from Tablom Where ID>5000)
Kolay gelsin.
Mustafa Hocam teşekkürler, aradığım tam olarak buydu.. Allah razı olsun..
akdatilla yazdı:Merhaba
informix gibi bazı veritabanlarında satır numarasını gösteren gizli alan vardır.
Ancak rowid'nin 400 olması bu satırın 400.satır olduğu anlamına gelmez.
Eğer tablonuzdaki kayıtların rowid'ye göre sıralı olduğunu düşünersek, 400.satırın rowid'sininde ne olduğunu biliyorsak (örnek 785) şöyle bir sorgu işinizi görür sanırım:

Kod: Tümünü seç

update tablom set alan1=100 where rowid<=785
kolay gelsin
Kod çalışmadı @akdatilla Hocam.. :) Emeğin için Allah razı olsun..
Cevapla