3 Temmuz 2015 Cuma

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 deyimini bu işlem için kullanabiliriz.


Kullanım Şekli:
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:

Öğrenci 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 bolumıd'si değerine göre bölüm adlarını yazdırıcağı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;
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 yazacak düşüklere kaldı.

  1. SELECT ad,soyad  
  2. IF(notu>=60,"GECTİ ","KALDI")   
  3. AS sonuc  
  4. FROM ogrenci 

,


IFNULL

Ifnull 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. Ifnull sonuca bir string  yada integer değerlerini 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); 

SONUÇ:2


Hiç yorum yok:

Yorum Gönder