İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL
  3. SQL Where Case When Kullanmak

SQL Where Case When Kullanmak

Merhaba SQL Where Case When Kullanmak dersim SQL eğitim setime devam ediyorum. Bu dersimizde SQL 'de Where kısmında Case When nasıl kullanılır ona bakacağız. Geçen günlerde bir iş için gerekli olmuştu. Böyle bir ders yazmadığım içinde yazmak istedim.

SQL Where Case When Kullanmak

Merhaba SQL Where Case When Kullanmak dersim SQL eğitim setime devam ediyorum. Bu dersimizde SQL ‘de Where kısmında Case When nasıl kullanılır ona bakacağız. Geçen günlerde bir iş için gerekli olmuştu. Böyle bir ders yazmadığım içinde yazmak istedim.

SQL Where Case When Kullanmak

Bu dersimizde Where kısmında Case When kullanımını göreceğiz.

Şöyle bir senaryomuz olsun. Bir mağazada, 5 farklı kategoride ürün olsun ve 5 farklı kullanıcı sadece kendisine atanan kategorilerdeki ürünleri görebilsin. 

Böyle bir senaryo da nasıl bir işlem yapmamız gerektiğini görelim. Elbette bu işi yapmak için farklı yöntemlerde vardır. Ben sadece Where Case When kullanımı için uygun olabilecek bir örnek vermek istedim. Elimde aşağıdaki gibi örnek bir tablo var. stok_kategori kolonuna göre dışarıdan gönderdiğimiz kullanıcı adına göre stokların bir listesini alacağız.

SQL Where Case When Kullanmak

Bu projede her kullanıcı stok kaydını yapabilir. Örneğin Mustafa kullanıcısı, sadece kategorisi “Kategori 1” olan stokları görebilir ama diğer kategorilere stok kaydedebilir.

declare @Kullanici as nvarchar(50)
set @Kullanici = 'Mustafa'

Bu dışarıdan gönderdiğimiz değişken olsun. Fonksiyon(Function) veya Saklı Yordam (Stored Procedure) kullanıyorsanız, onlara verdiğiniz parametre olabilir. Şimdi sorgumuzu görelim.

SELECT * 
FROM Stoklar 
where stok_kategori = ( case @Kullanici 
when 'Mustafa' then 'kategori 1' 
when 'Ali'     then 'kategori 2' 
when 'Cemal'   then 'kategori 3' 
when 'Ahmet'   then 'kategori 4' 
when 'Veli'    then 'kategori 5' 
end)

Yukarıdaki kodlarda gördüğünüz gibi, stok_kategori’si kolonuna eşlenecek olan kategori bilgisini case when ile belirlemiş oluyoruz.

  • Dışarıdan gönderilen @Kullanıcı parametresi, “Mustafa” ise sadece “Kategori 1” kategorisindeki stokları görebilir.
  • Dışarıdan gönderilen @Kullanıcı parametresi, “Ali” ise sadece “Kategori 2” kategorisindeki stokları görebilir.
  • Dışarıdan gönderilen @Kullanıcı parametresi, “Cemal” ise sadece “Kategori 3” kategorisindeki stokları görebilir.
  • Dışarıdan gönderilen @Kullanıcı parametresi, “Ahmet” ise sadece “Kategori 4” kategorisindeki stokları görebilir.
  • Dışarıdan gönderilen @Kullanıcı parametresi, “Veli” ise sadece “Kategori 5” kategorisindeki stokları görebilir.

Mustafa kullanıcısı için sorgumuzu çalıştıralım.

SQL Where Case When Kullanmak 3

Görselde gördüğünüz gibi 3 tane Mustafa, 1 tane de Veli kullanıcısının eklediği “Kategori 1” adlı kategorisindeki tüm stoklar listelendi.  Bu şekilde Where kısmında Case When kullanarak kullanıcıların görebileceği verileri kısıtlayabiliriz.

 

Bu şekilde kullanmazsak bir çok sorgu yazmamız gerekir. Örneğin projeyi geliştirdiğiniz dilde bir İf Else yada Switch Case ile farklı sorgular yazmanız gerekebilir. Ama bu şekilde bir kullanım ile tek sorguda işleri çözebiliriz.


SQL Where Case When Kullanmak dersimde bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere.

Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.

Buradan C# Eğitim Setimde yayınladığım Github projeme ulaşabilirsiniz.

Bu yazı, sitemdeki 450. yazıdır… Sağlıcakla ve Takipte Kalın. 😉

Yorum Yap

Yazar Hakkında

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım. Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir. Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.

Yorum Yap