Artículos Relacionados
Últimos Artículos
Lo más leido
Acceso
Oracle SQL - Función DECODE()
- Miércoles, 06 Octubre 2010
- Hits: 14990
| < Prev | Próximo > |
|---|
Sintaxis.
DECODE(expr, busqueda, resultado [, busqueda, resultado ]...· [, defecto ])
Proposito.
La función DECODE compara expr con cada uno de valores de busqueda uno a uno. Si expr es igual a un valor de busqueda la base de datos Oracle devuelve el resultado correspondiente.
Si no hay coincidencias en busqueda Oracle devuelve el valor por defecto. Si el valor por defecto se omite, Oracle devuelve un valor null. Los argumentos pueden ser cualquiera de los tipos de datos numéricos (NUMBER, BINARY_FLOAT, or BINARY_DOUBLE) o tipos de datos de caracteres.
La función DECODE() se puede utilizar tanto en Oracle 10g como en Oracle 11g.
- Si expr y busqueda son datos de tipo caracter, Oracle los compara semánticamente sin rellenar. expr, busqueda y resultado puede ser cualquiera de los tipos de datos CHAR, VARCHAR2, NCHAR o NVARCHAR2. La cadena devuelta es de tipo de dato VARCHAR2 y se encuentra en el mismo juego de caracteres del parámetro del primer resultado.
- Si el primer par de busqueda-resultado es numérico, entonces Oracle compara todas las expresiones busqueda-resultado y la primera expr determina el argumento con la mayor prioridad numérica, convierte implícitamente el resto de argumentos ese tipo de datos, y devuelve ese tipo de datos.
La busqueda, resultado, y defecto pueden ser derivados desde una expresión. La base de datos Oracle utiliza la evaluación de cortocircuito. La base de datos evalúa cada valor de busqueda sólo antes de comparar con expr, en lugar de evaluar todos los valores de busqueda antes de comparar cualquiera de ellos con expr, entonces, Oracle nunca evalúa una busqueda si una busqueda anterior es igual a expr.
Oracle convierte automáticamente expr y cada valor de busqueda a el valor del tipo de datos de primera busqueda antes de comparar. Oracle convierte automáticamente el valor de retorno al mismo tipo de datos del primer resultado. Si el primer resultado tiene el tipo de dato CHAR o si el primer resultado es nulo, Oracle convierte el valor de retorno al tipo de datos VARCHAR2.
En una función DECODE, Oracle considera que dos nulls son equivalentes. Si expr es null, Oracle devuelve el resultado de la primera busqueda que es también null.
El número máximo de componentes en la función DECODE, incluyendo expr, busqueda, resultado y defecto, es de 255.
EJEMPLO:

Comentarios
Suscripción de noticias RSS para comentarios de esta entrada.