SQL-də Məlumatların Filtrlənməsi və Manipulyasiyası:

SQL-də CASE WHEN və WHERE İfadələrinin Fərqləri: Sadə İzah

SQL dilində məlumatların idarə olunması və dəyişdirilməsi üçün çoxsaylı funksional vasitələr mövcuddur. Bu vasitələrdən ən çox rast gəlinənlər — CASE WHENWHERE ifadələridir. Hər iki ifadə bəzən qarışdırılsa da, onların istifadə məqsədi və tətbiq sahəsi fərqlidir. İndi bu iki ifadəni sadə və başa düşülən formada müqayisə edək.


WHERE: Verilənlərin Süzgəcdən Keçirilməsi

WHERE ifadəsi SQL sorğularında məlumatların süzgəcdən keçirilməsi üçün istifadə edilir. Bu şərt sorğunun işlənməsinin əvvəlində tətbiq olunur və yalnız müəyyən şərtlərə cavab verən sətirlər nəticəyə daxil edilir.

Məqsəd: Müəyyən kriteriyalara uyğun olan məlumatların seçilməsi.

Nümunə:
Aşağıdakı sorğu yalnız maaşı 5000 AZN-dən yüksək olan işçiləri seçir:

sql
SELECT *
FROM employees
WHERE salary > 5000;

CASE WHEN: Məlumatların Şərtə Əsasən Dəyişdirilməsi

CASE WHEN ifadəsi isə məlumatı süzgəcdən keçirmək üçün deyil, şərtlərə əsasən yeni dəyərlər yaratmaq və ya mövcud dəyərləri dəyişdirmək üçün istifadə olunur. Bu üsul nəticə dəstində dinamizm yaratmağa imkan verir.

Məqsəd: Şərtlərə uyğun olaraq sütun dəyərlərini dəyişdirmək və ya yenidən formalaşdırmaq.

Nümunə:
Aşağıdakı sorğu işçilərin maaşlarına görə onları kateqoriyalara ayırır:

sql
SELECT
name,
salary,
CASE
WHEN salary > 5000 THEN 'Yüksək'
WHEN salary BETWEEN 3000 AND 5000 THEN 'Orta'
ELSE 'Aşağı'
END AS salary_category
FROM employees;

Hər İkisini Birlikdə Necə İstifadə Etmək Mümkündür?

WHERECASE WHEN ifadələri bir sorğuda eyni anda istifadə oluna bilər. Məsələn, əvvəlcə məlumatlar WHERE ilə süzgəcdən keçirilir, daha sonra isə CASE WHEN ilə dəyişiklik edilir:

sql
SELECT
name,
salary,
CASE
WHEN salary > 5000 THEN 'Premium'
ELSE 'Standard'
END AS tier
FROM employees
WHERE salary > 3000;

Bu misalda:

  • WHERE yalnız maaşı 3000 AZN-dən yüksək olan işçiləri seçir;

  • CASE WHEN seçilmiş işçiləri müxtəlif kateqoriyalara bölür.


Əsas Fərqlər

Funksional fərq:

  • WHERE məlumatları sorğunun başlanğıcında filtr edir və uyğun gəlməyən sətirləri tamamilə çıxarır.

  • CASE WHEN isə mövcud məlumatlar üzərində dəyişikliklər aparır və yeni dəyərlər təyin edir.

İstifadə yeri fərqi:

  • WHERE ifadəsi adətən FROMJOIN əmrlərindən dərhal sonra istifadə edilir.

  • CASE WHEN isə əsasən SELECT hissəsində və bəzən ORDER BY və ya HAVING bölmələrində tətbiq edilir.

Nəticəyə təsiri:

  • WHERE şərtə cavab verməyən sətirləri tamamilə sorğudan kənarlaşdırır.

  • CASE WHEN isə mövcud sətirləri saxlayaraq onların dəyərlərini dəyişdirir.


Hansı Halda Hansını Seçmək Lazımdır?

  • Əgər məlumatları seçmək və filtrasiya etmək istəyirsinizsə — WHERE istifadə edin.

  • Əgər verilənlərə şərtə əsasən yeni dəyərlər təyin etmək istəyirsinizsə — CASE WHEN ifadəsinə müraciət edin.


Yekun

CASE WHENWHERE SQL proqramlaşdırmasında özünəməxsus funksiyalara malikdir. Onları düzgün formada tətbiq etmək verilənlər bazası ilə işləyərkən dəqiq və effektiv nəticələr əldə etməyə imkan verir. Hər iki ifadənin doğru seçilməsi sorğuların həm performansına, həm də nəticələrin keyfiyyətinə müsbət təsir göstərir.

Alas Academy təlim proqramlarımız kibertəhlükəsizlik sahəsində nəzəri bilikləri