SQL Server’da Where Koşulunda Case When Kullanmak
Herkese merhaba,
Bu yazıda sizlere SQL Server’da Where koşulu içinde nasıl Case When ifadesinin kullanımın anlatacağım.
SQL Server’da where koşulu tarafında bazen isteğe göre veri çekmek isteyebiliriz. Ne demek istiyoruz bir örnekle açıklayalım.
--Tablo oluşturma ve veri ekleme
CREATE TABLE Baglantilar (
ID INT
,Adi VARCHAR(100)
,Soyadi VARCHAR(100)
)
INSERT INTO Baglantilar (ID, Adi, Soyadi)
SELECT
1
,'Ahmet'
,'Maranki'
UNION ALL
SELECT
2
,'Mahmut'
,'Merkez'
UNION ALL
SELECT
3
,'Süleyman'
,'Kalmaz'
UNION ALL
SELECT
4
,'Güven'
,'Gelmez'
UNION ALL
SELECT
5
,'Banu'
,'Belirsiz'
GO
--Tabloyu oluşturma
CREATE TABLE Urunler (
UrunId INT IDENTITY (1, 1)
,UrunAdi VARCHAR(250)
,UrunDepo VARCHAR(10)
)
-- Tabloya veri ekleme
INSERT INTO dbo.Urunler (UrunAdi, UrunDepo)
VALUES ('Kestane', -- UrunAdi - varchar(250)
'Depo3' -- UrunDepo - varchar(10)
)
--Tabloyu listeleme
SELECT
*
FROM dbo.Urunler
--Case-When ile Where Kullanımı
DECLARE @kullanici VARCHAR(10)
SET @kullanici = 'Kul1'
SELECT
*
FROM dbo.Urunler
WHERE UrunDepo = CASE @kullanici
WHEN 'Kul1' THEN 'Depo1'
WHEN 'Kul2' THEN 'Depo2'
WHEN 'Kul3' THEN 'Depo3'
END
Yukarıdaki kodlarımızda ilk olarak bir tablo oluşturduk. Tablomuz bağlantılar tablosu. Bu bağlantılar tablosunda sadece Ad ve Soyad var. Başka bir şey yok. Ama biz bu tabloyu baş harflerine göre süzmek istiyoruz. Bu işlemi nasıl yapacağız.
Burada bir adet parametre oluşturduk. Parametreye 1 değerini atadık. Sonrasında ise Case kısmında eğer 1 ise A olanları getir, 2 ise B olanları getir vb. diyerekten gerekli süzme işlemini atadığımız Set değerine göre yapıyoruz. Daha da açık bir şekilde anlamanız için aşağıdaki örneği de incelemenizi öneriyorum.
Burada ne yaptık. İlk olarak tablomuzu oluşturduk. İçerisine veri ekledik. Sonrasında eklediğimiz verileri listeleyerek kontrol ettik. Case When tarafında ise şu işlemi yaptık. Kullanici diye bir değişken oluşturduk. Bu kullanici değişkenine Kul1 değerini atadık. Case when ile değişkene daha önce atanan değer ile kontrol işlemi yaparak süzme işlemi gerçekleştirdik.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.