2011-11-20 20 views
6

Chcę wyświetlić komunikat domyślny, gdy nie ma danych uzyskanych z zapytania.Jak wyświetlić wartość domyślną, gdy nie pasuje do zapytania?

Na przykład Weźmy zapytanie

wybierz empname od pracownika, gdzie id = 100

Jeśli dane nie pasuje to szukanie Chcę dostać Unavailable wskutek lub wymaganego rezultatu powinien wyświetlić.

Jak powinienem napisać zapytanie SQL, aby to osiągnąć.

Używam Oracle 10g.

+1

Naprawdę powinieneś po prostu zwrócić 'null' i pozwolić twojemu programowi wywołującemu zdecydować, jak zachowa się przy napotkaniu' db_null' zamiast robić to w twoim DB. – Seph

+0

@Seph: Dzięki za podpowiedź, jeśli zwrócę null w aplikacji wywołującej, muszę zastąpić wartość null domyślną wiadomością. Więc zamiast tego, jeśli próbuję zrobić to samo zapytanie. – Hariharbalaji

+0

Myślałem już o wszystkich tych scenariuszach, a następnie przeniosłem tylko IF() do SQL, ponieważ zachowanie było takie samo w obu miejscach – Hariharbalaji

Odpowiedz

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

Trzeba owinąć SELECT do innego SELECT lub zostaną zwrócone nie rząd. A gdzie nie ma wiersza, nie może być wartości.

Powiązane problemy