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