2011-11-20 15 views
6

Bir sorgudan veri alınmadığında varsayılan bir mesaj görüntülemek istiyorum. Örneğin Bir sorguda eşleşme bulunmadığında varsayılan değer nasıl görüntülenir?

bize çalışandan bir sorgu

seçme EmpName alalım nerede id = hiçbir veri i sonucunda Unavailable almak istiyorum bu arama ya da istenilen sonucu eşleşirse 100

göstermeli.

Bunu başarmak için bir SQL sorgusu nasıl yazmalıyım.

Oracle 10g kullanıyorum.

+1

Gerçekten 'null' öğesini döndürmeli ve çağrılan uygulamanızın DB'nizde yapmak yerine 'db_null' ile karşılaşıldığında nasıl davranacağına karar vermeniz gerekir. – Seph

+0

@Seph: Bahşiş için teşekkür ederim, çağıran uygulamada null döndürürseniz, boş bir varsayılan mesajla değiştirmeliyim. Yani yerine ben bir sorgu kendisi yapmaya çalışıyorum. – Hariharbalaji

+0

Tüm bu senaryolar hakkında çoktan düşünmüştüm ve davranışları her iki yerde de aynı olduğu için IF() yi SQL'e taşıdım. – Hariharbalaji

cevap

16
SELECT COALESCE((SELECT empname FROM employee WHERE id = 100), 'Unavailable') 
FROM DUAL; 

Başka SELECT içine SELECT kaydırmak zorunda ya da hiç satır döndürülür. Ve satırın olmadığı yerde, bir değer olamaz.

İlgili konular