1. Ana Sayfa
  2. SQL

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

Row_Number() ile Update Yapmak (Sıra Kolonu)
+ - 1

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.

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

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (1)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.