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:
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.
SELECT ad,soyad,bolumId,
case
bolumId
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'
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ı.
- SELECT ad,soyad
- IF(notu>=60,"GECTİ ","KALDI")
- AS sonuc
- FROM ogrenci
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:
|
SELECT IFNULL(1,0); -- returns 1
SELECT IFNULL('',1); -- returns ''
SELECT IFNULL(NULL,'IFNULL function'); --
|
Örnekler;
SELECT IFNULL(1,2);
SONUÇ:1
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:
Örnekler:
SONUÇ:NULL
SELECT NULLIF(2,3);
SONUÇ:2