SQL'de If Else Kullanımı
-
Çokca sorulan sorulardan birisi de SQL sorgularımız içerisinde if else koşul yapısının kullanımıdır.
Programlama dillerinin ortak özelliklerinden birisi de "Bunlar olunca şunları yap", "Gömleği mavi seçersem kravatı beyaz seç" gibi cümlelerin temelinde yatan koşul cümleleridir. SQL dilinde de bu yapıyı kullanmak mümkün.
Bu konuyu daha iyi anlamak için birkaç örnek üzerinde duralım.
Öncelik olarak kullanıcı tablosu oluşturalım.
tblKullanicilar (Kullanıcılar tablosu)CREATE TABLE tblKullanicilar ( kullanici_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1), ad VARCHAR(50), soyad VARCHAR(50), cinsiyet VARCHAR(1), kullanici_adi VARCHAR(50), tc_no VARCHAR(20), dogum_tarihi DATE )
Oluşturduğumuz tablo üzerinde işlem yapmak için birkaç kayıt ekleyelim.
Kullanıcı VerileriINSERT INTO tblKullanicilar(ad, soyad, cinsiyet, kullanici_adi, tc_no, dogum_tarihi) VALUES ('Serkan', 'TOGAL', 'E', 'ontedi', '12345678901', '01.01.1980') INSERT INTO tblKullanicilar(ad, soyad, cinsiyet, kullanici_adi, tc_no, dogum_tarihi) VALUES ('Asmin Nisa', 'TOGAL', 'K', 'asmin', '12312312322', '01.01.2014') INSERT INTO tblKullanicilar(ad, soyad, cinsiyet, kullanici_adi, tc_no, dogum_tarihi) VALUES ('Ahmed İhsan', 'TOGAL', 'E', 'ahmed', '33344455566', '01.01.2016') INSERT INTO tblKullanicilar(ad, soyad, cinsiyet, kullanici_adi, tc_no, dogum_tarihi) VALUES ('Yusuf Taha', 'FISTIK', 'E', 'yusuf', '55566677788', '01.02.2016')
Tablo Oluştu

Örnek 1DECLARE @adiniz VARCHAR(50) = 'Serkan' IF @adiniz IS NOT NULL SELECT * FROM tblKullanicilar WHERE ad = @adiniz
Örnek 1 Sonucu

Örnek 2DECLARE @adiniz VARCHAR(50) = 'Ahmed İhsan' DECLARE @soyadiniz VARCHAR(50) = 'TOGAL' IF (@adiniz IS NOT NULL) AND (@soyadiniz IS NOT NULL) SELECT * FROM tblKullanicilar WHERE ad = @adiniz AND soyad = @soyadiniz
Örnek 2 Sonucu

Örnek 3DECLARE @cinsiyet VARCHAR(1) = 'K' IF @cinsiyet = 'K' SELECT * FROM tblKullanicilar WHERE cinsiyet = 'K'
Örnek 3 Sonucu

Son örneğimizde ise doğum tarihi boş olmayan ve 2015-01-01 tarihinden sonra doğmuş kişileri listeleyelim.
Örnek 4DECLARE @dogum_tarihi DATE = '2015-01-01' IF @dogum_tarihi IS NOT NULL SELECT * FROM tblKullanicilar WHERE dogum_tarihi > @dogum_tarihi
Örnek

Kaynak: SQL'de If Else Kullanımı -
Sadece Sql server da mı var yoksa mysql falan da var mı hocam?
şimdiye kadar mysql tarafında hiç böyle bir şey görmedim. cahilliğime ver
-
"CASE WHEN" de bu işi yapıyor. Mssql mysql oracle ve db2 da geçerlidir.
-
Anlatım için teşekkürler hocam eline sağlık.
