SQL Server’da CASE WHEN ile UPDATE Kullanımı

Herkese merhaba,

Bu yazıda sizlere SQL Server’da CASE WHEN ile UPDATE kullanımından bahsedeceğim.

SQL Server’da bazı durumlarda bir kolonun içeriği şarta sokularak diğer bir kolon güncellenmek istenebilir.

İşlemi anlamak için ilk olarak aşağıdaki tabloyu oluşturup içindeki verileri ekleyelim.

--Tablo oluşturulması 

CREATE TABLE Sayilar
(
    id INT IDENTITY(1, 1) PRIMARY KEY,
    Sayi INT,
    Aciklama NVARCHAR(20)
);

--Tabloya veri eklenmesi 
INSERT INTO dbo.Sayilar
(
    Sayi,
    Aciklama
)
VALUES
(   20, -- Sayi - int 
    N'' -- Aciklama - nvarchar(20) 
    ),
(30, N''),
(40, N''),
(15, N'');

--Tablo kontrol edilmesi 

SELECT * FROM dbo.Sayilar

Görüldüğü üzere tablomuz oluştu ve veriler eklendi.

SQL Server’da CASE WHEN ile UPDATE Kullanımı

Burada bizim yapmak istediğimiz Sayı kolonundaki rakama göre Açıklama kolonunu büyüktür ya da küçüktür şeklinde güncellemek.

Bu işlem için aşağıdaki Case When yapısını kullanıyoruz.

UPDATE dbo.Sayilar
SET Aciklama = CASE
                   WHEN Sayi < 20 THEN
                       '20 den küçük'
                   ELSE
                       '20 den büyük'
               END;

Kod bloğunu çalıştırdığımızda bize aşağıdaki sonucu döndürecektir.

SQL Server’da CASE WHEN ile UPDATE Kullanımı

Görüldüğü üzere istediğimiz sonucu elde ettik fakat dikkat ederseniz bir satırda 20 ifadesi var ve bu satır 20 yirmiden küçük olmadığı için else bloğuna girip 20’den büyük yazdı.

Bu yüzden bu tarz kodlar yazarken olasılıkları güzel hesap edin yoksa hatalı sonuçlar elde edebilirsiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

354 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!