İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL

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
+ - 0

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. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)