8 Temmuz 2015 Çarşamba

MYSQL'de CASE, IF, IFNULL, NULLIF KULLANIMI

CASE

MYSQL 'de bazı yerlerde (örneğin select işleminde seçilecek değer için )koşul kullanılabilir. CASE deyimi bu işlem için kullanabiliriz.

KULLANIM ŞEKLİ:

SELECT alan1, alan2,
CASE alan3
WHEN 'deger1' THEN 'deger1a'
WHEN 'deger2' THEN 'deger2a'
WHEN 'deger3' THEN 'deger3a'
ELSE 'ön tanımlı değer'
END
FROM tablo

  örnekle açıklayalım:

ÖĞRENCİ TABLOSU


ad
soyad
bolumId
bolumAdi
Mehmet
Durmaz
1
Bilgisayar Öğretmenliği
Ahmet
Yıkılmaz
1
Bilgisayar Öğretmenliği
Ayşe
NULL
2
Fizik Öğretmenliği
Melek
Tunc
2
Fizik Öğretmenliği
Seher
Ay
5
Biyokimya Mühendisliği
Şakir
Yok
4
Kimya Öğretmenliği
Abbas
Kırmızı
3
Fizik Bölümü
Ayşe
Pekmez
2
Fizik Öğretmenliği
Mert
Günaydın
5
Biyokimya Mühendisliği

Bu örneğimizde bölüm değerlerine göre bölüm adlarını yazdıracağız.





//Ekrana gelecek sutunlerı belirledik
SELECT ad,soyad,bolumId,case bolumId
//bolumId si değerine göre gelecek yeni değerleri belirledik
When '1' then 'Bilgisayar Öğretmenliği'
When '2' then 'Fizik Öğretmenliği'
When '3' then 'Fizik Bölümü'
When '4' then 'Kimya Öğretmenliği'
When '5' then 'Biyokimya Mühendisliği'
//yeni değerlerin sütun ismini bolumAdi olarak değiştirdik
end as bolumAdi from ogrenci

IF_ ELSE
IF kullanımı basit bir koşul ifadesidir.

Kullanım Şekli:
SELECT 
IF     'kosul_ifadesi' THEN 'komutlar1'
ELSEIF 'kosul_ifadesi' THEN 'komutlar2'
ELSE 'komutlar3'
END IF
FROM tablo

Örnekle açıklayalım;
Örnekle açıklayalım;
ad
soyad
notu
Mehmet
Durmaz
45
Ahmet
Yıkılmaz
58
Ayşe
NULL
65
Melek
Tunc
18
Seher
Ay
92
Şakir
Yok
85
Abbas
Kırmızı
62
Ayşe
Pekmez
55
Mert
Günaydın
38
Bu örneğimizde notu 60 dan yüksek olan öğrencilere geçti  düşüklere kaldı yazıyoruz.
SELECT AD , SOYAD
IF(NOTU>=60,"GEÇTİ","KALDI")
AS SONUÇ
FROM ÖĞRENCİ
IF NULL
ıfnull kullanımı içinde  verilen iki değer için eğer ilk değer(boş)null  değilse sonuca ilk değeri, boş ise sonuca ikinci değeri döndürür. ıfnull sonuca bir string yada integer değerleri döndürür.
Kullanım Şekli:

1
2
3
4
5
SELECT IFNULL(1,0); -- returns 1
SELECT IFNULL('',1); -- returns ''
SELECT IFNULL(NULL,'IFNULL function'); --



Örnekler;

SELECT IFNULL(1,2); 

SONUÇ:1

  1. SELECT IFNULL(NULL,2);  

SONUÇ:2


NULLIF

Nullif koşul ifadesinde eğer içinde verilen iki değer eşit ise boş(null) değerini değil ise ilk değeri değer sütunumuza döndürecektir.

Kullanım Şekli:

NULLIF(ifade1, ifade2);
Örnekler:

  1. SELECT NULLIF(2,2);  

SONUÇ:NULL


SELECT NULLIF(2,3); 

Hiç yorum yok:

Yorum Gönder