Row_Number() ile Update Yapmak (Sıra Kolonu) , dersi ile sql eğitim setime devam ediyorum. Temel dersleri bitirdiğimize göre artık karşılaştığım hataları örnekler üzerinde çözümleri ile göstermeye veya yani öğrendiğim şeyleri yada bana sorduğunuz soruları paylaşmaya geçeceğim. Tabi yazdığım tüm dersleri bu eğitim seti içerisine ekleyeceğim. Gelin Row_Number() ile Update Yapmak (Sıra Kolonu) işlemine geçelim.
Row_Number() ile Update Yapmak (Sıra Kolonu)
Bu dersimizde göreceğimiz şeyler şöyledir;
- Row_Number() Kullanımı
- Update işlemi
- Update İşlemi içerisinde select sorgusu kullanımı
ID bilgisi haricinde bir adet de sıra bilgisi tutmam gereken bir tablom vardı. Sıra mutlaka 1, 2, 3, 4 gibi sıralı olması gerekiyor. Eğer 1, 3, gibi atlamalı olursa sıkıntı yaşıyorum. (En başta 50 olup sonraki düzeltmede 45 olması sıkıntı değil) Yani işin özü her üç satırdan bir hesap çıkarmam gerekiyor. Bunun içinde Kod -1 , Kod -2 olarak kullanıyorum. (Tabi işlem yeni başladığım sıralarda kurduğum bir mantıktan dolayı gerekti)
Tablo mevcut ama aralardan silinmeler olduğundan dolayı atlamalar var ve bu da hesapları bozuyor. Manuel düzeltmek isterdim ancak tabloda binlerce kayıt var ve saatler sürecekti.
Kodlarımıza geçelim.
UPDATE x SET x.Tbl_Kod = x.Yeni_Kodlar FROM ( SELECT Tbl_Kod , ROW_NUMBER() OVER (ORDER BY [Tbl_ID] ) AS Yeni_Kod FROM MyTable ) x
x ile select sorgusuna bir isim vermiş olduk
x. ile başlayanlar bu select sorgusunun elemanları anlamına gelir.
x sorgusundaki Tbl_Kod ‘u x sorgusundaki ROW_NUMBER()’ a göre güncelle – demiş oluyoruz.
Ancak buradaki ROW_NUMBER()’ ı da veriler ID ye göre sıralandığında ki satır numarasını alıyoruz
Kodlarımızı sıralı olarak yani ardışık olarak almak için
ROW_NUMBER() OVER (ORDER BY [Tbl_ID]
Burada sıra numarasının hangi kolona göre sıralanaıp, verileceğini belirtiyoruz.
NOT: ROW_NUMBER() ile gelen sıra numarası hiçbir zaman değişmez.
Sıralamayı ID’ye göre de yapsanız, Tarihe göre de yapsanız 1. satır her zaman 1. satırdır. Yani ROW_NUMBER() tabloya bağlı değildir. Gelen sonuçlara bağlıdır. (Excel deki gibi düşünün. 1. Satırı sildiğinizde 2. satır 1. satır olur.)
Row_Number() ile Update Yapmak (Sıra Kolonu) dersimizde bu kadardı dostlar. Diğer derslerimizde görüşmek üzere.
Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.
Sağlıcakla ve Takipte Kalın.
Yorumlar (1)