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.

1.742 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!