Bu yazımda MySQL Stored Procedure üzerinde CASE Koşul Deyimi’nin kullanımı ile ilgili örnek kodları paylaşacağım.
Yapmak istediğim Oluşturduğum Prosedür aracılığı ile ülkeler tablom da bir sorgu çalıştırıp eğer parametre aracılığı ile yollanan ülke adı Türkiye ve Japonya ise bir sevkiyat süresi ile ilgili bir parametre döndürecek.
İlk olarak örnek tablomuz :
-Ülkeler
–Ulke_ID
–Ulke_No
–Ulke_Adi
Prosedürümüz :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
CREATE PROCEDURE UlkeTeslimatSuresi( IN _UlkeID INT, OUT _SevkiyatGunu VARCHAR(50) ) BEGIN DECLARE SevkiyatUlke VARCHAR(100); SELECT Ulke_Adi INTO SevkiyatUlke FROM Ulkeler WHERE Ulke_ID = _UlkeID; CASE SevkiyatUlke WHEN 'Turkiye' THEN SET _SevkiyatGunu = '1 Günde Telsimat'; WHEN 'Japonya' THEN SET _SevkiyatGunu = '15 Günde Teslimat'; ELSE SET _SevkiyatGunu = '7 Günde Teslimat'; END CASE; END |
Kullanım :
1 2 3 |
// 12 Idsinin Türkiye olduğunu varsayıyoruz CALL UlkeTeslimatSuresi(12,@sevkiyat); SELECT @sevkiyat; // Çıktısı "1 Günde Teslimat" Olacaktır. |
Prosedürümüzü çalıştırdığımızda Ülke ID’sine göre eğer ülke Türkiye ise 1 Günde Teslimat eğer ülke Japonya ise 15 Günde Teslimat değerini döndürecektir