2011-11-20 12 views
6

Quiero mostrar un mensaje predeterminado cuando no se obtienen datos de una consulta.¿Cómo se muestra un valor predeterminado cuando no se encuentra una coincidencia en una consulta?

Por ejemplo Tomemos una consulta

seleccione empname del empleado donde id = 100

Si no hay datos coincide con esta búsqueda quiero conseguir Unavailable como resultado o el resultado requerido debería mostrar.

Entonces, ¿cómo debo escribir una consulta SQL para lograr esto.

Estoy usando Oracle 10g.

+1

Debería devolver 'null' y dejar que su aplicación de llamada decida cómo se comportará cuando encuentre' db_null' en lugar de hacerlo en su base de datos. – Seph

+0

@Seph: Gracias por la sugerencia, si devuelvo nulo en la aplicación de llamada, tengo que reemplazar el nulo con el mensaje predeterminado. Entonces, en lugar de tratar de hacerlo, la consulta en sí misma. – Hariharbalaji

+0

Ya había pensado en todos estos escenarios y luego solo moví el IF() a SQL ya que el comportamiento era el mismo en ambos lugares – Hariharbalaji

Respuesta

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

Tienes que envolver el SELECT en otro SELECT o se devolverá ninguna fila. Y donde no hay fila, no puede haber un valor.

Cuestiones relacionadas