Case

declare @temp_table table(
sayi1 int
)
 
INSERT into @temp_table values(1), (2), (3), (4)

SELECT * FROM @temp_table

SELECT sayi1=
CASE sayi1
	WHEN 1 then 24
	WHEN 3 then 99
END
FROM @temp_table

Sanal (yani geçici) bir tablo oluşturarak bu tabloya 4 satır değer ekledim.

Yine sorgu yaptığım için SELECT ile başlıyorum. “Sütundaki değerin “1” olduğu yerde değeri değiştirerek 24 yap”, şeklinde çalışıyor. Her satır için tekrar tekrar çalışır ilk gördüğünü değiştirip sona ermez.

Yukarıdaki örnekte tabloya 1, 2, 3 ve 4 değerlerini ekledim, CASE yapısı içerisinde 1 değerlerini 24 ile, 3 değerlerini ise 99 ile değiştirmesini ayarladım. Sonuç aşağıdaki gibidir.

String ile yapacak olursak,

declare @temp_table table(
u_id int,
u_name nvarchar(50),
u_salary int
)
 
INSERT into @temp_table values(1, 'Ahmet', 5600)
INSERT into @temp_table values(2, 'Emin', 6874)
INSERT into @temp_table values(3, 'Boran', 4687)

SELECT * FROM @temp_table

SELECT u_name=
CASE u_name
	WHEN 'Ahmet' then 'Mehmet'
	WHEN 'Boran' then 'Bora'
END
FROM @temp_table

Eğer veritabanından filtreleme yapacaksanız, bunun gibi işlemlerle sunucu tarafında yapmanızı öneririm,
Program tarafında işlem: eğer önce verileri (örneğin 1.000.000 veriyi) çekip sonra filtrelerseniz önce veriyi çekmek için bağlantıya yüklenecek ardından işlemek için programı çalıştıran işlemciye yüklenmiş olacaksınız, ayrıca RAM’de de çok yer kaplamış olacaksınız, hem kaynak kullanmış hem de verinin gelmesi için beklemiş olacaksınız.
Sunucu tarafında işlem: Sunucu kendi içinde, programdaki tablo içinde arama işleminden çok daha hızlı arama/filtreleme yapar. Sunucu tarafında yaptığınız işlemde arama/filtreleme işlemi kısa sürecek, dönen veriler sadece sonuçlar olduğu için tüm veritabanına nispeten daha az veri gelecektir.

Yazı oluşturuldu 38

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön