COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
12/ 65

Sorgulama ve aggregation

CASE ve koşullu ifadeler

Bir sorgunun içinde iş kurallarını görünür kıl.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

CASE bir değer üreten ifadedir; prosedürel IF yerine bütün sorguyu kontrol etmez. Simple CASE eşitlik karşılaştırır, searched CASE farklı koşulları sırayla sınar. İlk doğru WHEN seçilir. ELSE yoksa eşleşmeyen satır NULL üretir.

Dalların sonuç tipleri ortak bir tipe dönüşebilmelidir. Bir dalda sayı, diğerinde metin döndürmek beklenmedik dönüşüm hataları verebilir. CASE ile sıfıra bölmenin her koşulda önleneceğini varsayma; özellikle aggregate ifadeler daha önce değerlendirilebilir. NULLIF ile payda korumasını açıkça ifade et.

NERESİNDE KULLANIRSIN?

Etiketler, segmentler, koşullu toplamlar ve sıralama kuralları için.

SIK YAPILAN HATA

CASE’i akış kontrol komutu sanmak; ELSE eksikliğini fark etmemek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT ProductName, CASE WHEN Stock = 0 THEN N'Unavailable' ELSE N'In stock' END AS Availability FROM lab.Product;

Cable stok dışıdır; diğerleri stokta görünür.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Fiyatı 5000 ve üzerindeki ürünlere High, diğerlerine Regular etiketi ver.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT ProductName, CASE WHEN Price >= 5000 THEN N'High' ELSE N'Regular' END AS PriceBand FROM lab.Product;

Etiket yalnız sonuçtadır; ürün fiyatını veya tablodaki veriyi değiştirmez.