top of page

SQL Server Update İçerisinde Case When Kullanımı


Bu makalede sizlere Update içerisinde Case When şart bloğu kullanmayı göstereceğim. Öncelikle neden buna ihtiyaç duyarız bunu bir konuşalım. Mesela elimizde bir tablo var ve bu tablonun bir kolonunu bir şarta bağlı olarak güncellemek istiyoruz. Mesela aynı tablodaki başka bir sütuna göre güncelleyelim. Basit bir örnek yapalım.


Elimize CUSTOMERS isimli bir tablo var ve bu tablonun özellikleri aşağıdaki gibi. Bizden istenen durum şu;


AGEGROUP alanını 20-35 yaş, 36-45 yaş, 46,55 yaş, 56-65 yaş ve 65 yaş üstü olarak güncelleyiniz.



Bizden yaş aralığı isteniyor. Bunun için BIRTDATE alanını kullanacağız. Ama tabloda bir güncelleme işlemi olacağı için bunu Update içerisinde kullanacağız. Kodumuz şu şekilde;


UPDATE CUSTOMERS 
SET AGEGROUP = CASE 
				    WHEN (YEAR(GETDATE()) - YEAR(BIRTHDATE)) BETWEEN '20' AND '35' THEN '20 - 35 YAŞ ARASI'
					WHEN (YEAR(GETDATE()) - YEAR(BIRTHDATE)) BETWEEN '36' AND '45' THEN '36 - 45 YAŞ ARASI'
					WHEN (YEAR(GETDATE()) - YEAR(BIRTHDATE)) BETWEEN '46' AND '55' THEN '46 - 55 YAŞ ARASI'
					WHEN (YEAR(GETDATE()) - YEAR(BIRTHDATE)) BETWEEN '55' AND '65' THEN '55 - 65 YAŞ ARASI'
					WHEN (YEAR(GETDATE()) - YEAR(BIRTHDATE)) > '65' THEN '65 YAŞ ÜSTÜ'
					END

Bu şekilde AGEGROUP alanımızı yaşa göre güncelledik. Tablomuzun son haline bir bakalım.


Gördüğümüz gibi AGEGROUP alanını güncelledik. Tabii bunu bu şekilde güncellemenin birden fazla yolu da var. Aynı işlemi DATEDIFF fonksiyonu kullanarak da yapabiliriz. Hatta SQL Server'i yeni öğreniyorsanız bunu denemenizi öneririm. Takıldığınız birşey olursa sorabilirsiniz.



Bol verili günler dilerim :)


Comments


©2021, Fazlı KELEŞ tarafından kurulmuştur.

bottom of page