Row_Number() ile Update Yapmak (Sıra Kolonu)

Row_Number() ile Update Yapmak (Sıra Kolonu)

7 Eylül 2018 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 144
Yaklaşık okuma süresi : 2 DK
Tablonun Son Güncellenme Tarihini Bulmak
SQL Attach Database - Veritabanı Ekleme
Row_Number() ile Update Yapmak (Sıra Kolonu)
5 (100%) 2 Oy

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;

  1. Row_Number() Kullanımı
  2. Update işlemi
  3. 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.

İlgili İçerik  C# Telefon Numarası Kontrolü - REGEX Sınıfı

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. 😉

Tablonun Son Güncellenme Tarihini Bulmak
SQL Attach Database - Veritabanı Ekleme
Mustafa Bükülmez

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.