5.00 / 1 oy

SQL Server'da SET CASE ile Update Komutunu Kullanmak

SQL Server'da bir stored procedure ya da function içerisinde tablo düzenleme kurallarınıza istinaden kod yazarken şu şekilde bir algoritma kullanmanız gerekebilir:

- a durumunda 1 yaz
- b durumunda 2 yaz
...

Bu problemin çözümünde uygulayabileceğiniz alternatif çözüm yolları olsa da SQL Server için en optimal çözümlerden birisi SET CASE WHEN ... kodlarını kullanmaktır. Örneğin şöyle bir problemimiz olsun:

- @saat tamsayı değişkeni, içerisinde bulunduğumuz andaki saatin tam kısmını göstersin

- Saat 18'e kadar sipariş alan bir restoran sistemi olsun

 - Her sipariş, en az 2 saat sonrasında teslim edilebilir olsun ve saat dilimleri de ikişer saat ara ile 9'dan 19'a kadar olsun.

Bu durumda teslim saati için aşağıdaki gibi gbir SET CASE kodu yazılabilir.

UPDATE siparisler
SET TESLIM = CASE
WHEN @saat < 7 THEN '09:00-11:00' 
WHEN @saat >= 7 and @saat < 9 THEN '11:00-13:00' 
WHEN @saat >= 9 and @saat < 11 THEN '13:00-15:00' 
WHEN @saat >= 11 and @saat < 13 THEN '15:00-17:00' 
WHEN @saat >= 13 and @saat < 15 THEN '17:00-19:00' 
WHEN @saat >= 15 and @saat < 18 THEN '19:00-21:00'
ELSE ''
END
WHERE ...

 

Önceki başlıklarımdan bazıları için;

bkz: Sql Server'da Trim ve Update ile Tablo Güncellemek

bkz: Sql Server'da Query ile Stored Procedure Nasıl Çalıştırılır?

bkz: Sql Server'dan Excel'e Verileri Aktarmak

bkz: Sql Server'ın Çalıştığı Portu Bulmak

bkz: Sql Server'da Başka Bir Tablodan Hesaplanmış Sütun Eklemek

bkz: Sql Server'da sütun için minimum karakter uzunluğu kuralı eklemek

kaanbey

19.04.2021 12:57

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
SQL Server'da SET CASE ile Update Komutunu Kullanmak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.