SQL Row_Number() Fonksiyonu Update Yapmak (Sıra Kolonu Güncelleme)

SQL Row_Number() Fonksiyonu Update Yapmak (Sıra Kolonu Güncelleme)

Bu dersimizde update işlemi içerisinde identity alanına göre sıralı bir şekilde Row_Number() kullanarak satırların sıra kolonlarını güncelleyeceğiz

Selamlar arkadaşlar,

Bu dersimizin içeriği;

  1. Row_Number() Kullanımı
  2. Update işlemi
  3. Update İşlemi içerisinde select sorgusu kullanımı

Öncelikle bu işlem bana neden gerek oldu onu anlatayım. ID bilgisi haricinde bir adet de sıra bilgisi tutmak gereken bir tablom var. 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.

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ürer.

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ığındaki satır numarasını alıyoruz

Kodlarımızı sıralı olarak yani ardışık olarak almak için 

ROW_NUMBER()

bu fonksiyonu kullanıyoruz ve hangi sıraya göre alacağımızı da

ROW_NUMBER() OVER (ORDER BY [Tbl_ID]

devamındaki komutlar ile alıyoruz.  

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ğldir. 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.)

Bu dersimizde bu kadar arkadaşlar

Diğer derslerimizde görüşmek üzere,

Bol kodlu günler

 

Mustafa BÜKÜLMEZ
Web sitesi, ERP, MRP, CRM ve kişiye özel uygulamalar hazırlanır. -- Deneyip çalıştığını onaylamadan çok nadir ders eklerim. Denemediklerim ise eski makalelerimdendir. Hem bildiklerimi paylaşmak hemde her seferinde aramamak için yayınlıyorum. -- *Bilgi paylaştıkça çoğalır. *Bir mum diğer mumu yakmakla ışığından bir şey kaybetmez. Aksine Daha çok ışık yayar. -- 1992 İstanbul doğumluyum. Kahramanmaraş'ta yaşıyorum. Lise: Ağ sistemleri ve Yönetimi, Üniversite: Bilgisayar Programcılığı.. -- 07.2014 tarihinden beri bir firmada Bilgi İşlem Müdürü olarak çalışmaktayım. -- Kişisel Bloğum : https://csharpiledundenbugune.blogspot.com.tr/
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git