Introducción a la función decode() en SQL
La función DECODE es un método de cálculo de función único proporcionado por el software SQL de ORACLE ORACLE
PL/SQL, con su método de cálculo simple, modelo de datos controlable y conocido por su conversión de formato flexible.
Cuando estaba mirando el SQL de otras personas hoy, vi que hay una función decode() en él. Nunca antes la había encontrado. La revisé en línea y descubrí que es muy útil. función. Espero que sea útil para mis amigos si lo escribo, ¡ja!
Introducción a la función decode():
Función principal: traducir los resultados de la consulta a otros valores (es decir, expresarlos en otras formas, como se muestra a continuación con ejemplos);
Uso:
Seleccionar
decodificar (nombre de columna, valor 1, valor de traducción 1, valor 2, valor de traducción 2, ... valor n, valor de traducción n, valor predeterminado)
Desde
talbename
Donde
<…
Donde el nombre de columna se define en el tabla a seleccionar columna,
·Explicación del significado:
decodificar(condición, valor 1, valor de traducción 1, valor 2, valor de traducción 2,... valor n, traducción valor n, valor predeterminado) se entiende de la siguiente manera:
if
(condición == valor 1)
entonces
return ( valor de traducción 1)
elsif
(condición == valor 2)
entonces
return(valor de traducción 2)
.....
elsif
(condición == valor n)
entonces
return(traducción valor n)
p>else
return (valor predeterminado)
end
if
Nota: El valor predeterminado puede ser La columna
nombre
que desea elegir también pueden ser otros valores que desee definir, como Otros, etc.;
Ejemplo:
Ahora defina una tabla llamada salida, en la que se definen dos columnas como id de mes (tipo var) y venta (tipo de número). Si el valor de venta = 1000, se traducirá a D. , cuando = 2000 se traducirá a C, y cuando = 3000 se traducirá a D. Se traduce como B, cuando =4000 se traduce como A, si son otros valores se traduce como Otro ;
SQL es el siguiente:
Seleccione
monthid
,
decodificar
(venta, 1000, 'D', 2000, 'C', 3000, 'B', 4000, 'A', 'Otro')
venta
desde
salida
Caso especial:
Si se compara con un solo valor
Seleccione
monthid
, decodificar (venta,
NULL, '---', venta)
venta
desde
salida
Otra: se pueden usar otras funciones en la decodificación, como la función nvl o la función sign()
NVL (EXPR1, EXPR2)
Si EXPR1 es NULL; , devuelve EXPR2; de lo contrario, devuelve EXPR1.
SELECT
NOMBRE, NVL(TO_CHAR(COMM),' NOT
APLICACIÓN')
DE
TABLA1;
Si se usa en la función de decodificación, es
seleccione
monthid, decode(nvl(sale, 6000), 6000, 'NG'
, 'OK')
de
salida
La función sign() devuelve 0, 1 o 0, respectivamente, dependiendo de si un valor es 0 , un número positivo o un número negativo.
Si toma un valor menor, es
select
monthid, decode(sign(). sale-6000), -1, sale, 6000)
de
salida, es decir, para lograr el propósito de tomar un valor menor.
Resumen:
Función: compara el valor de entrada con la lista de parámetros en la función y devuelve un valor correspondiente según el valor de entrada. La lista de parámetros de una función es una secuencia de formas pares que consta de varios valores y sus correspondientes valores de resultado. Por supuesto, si no logra hacer coincidir con éxito alguna de las secuencias de parámetros reales, la función también tiene un valor de retorno predeterminado.
A diferencia de otras funciones SQL, la función DECODE también puede identificar y operar con valores nulos.
Sintaxis: DECODE(valor_control, valor1, resultado1[, valor2, resultado2...][, resultado_predeterminado]
El valor que controla
_valor está tratando de procesar. La función DECODIFICAR compara este valor con la siguiente serie de números pares para determinar el valor de retorno.
valor1 es una secuencia de valores. Si el valor de entrada coincide correctamente, se devolverá el resultado correspondiente. Correspondiente a un valor de retorno vacío, puede usar la palabra clave NULL para corresponderle
resultado1
es una secuencia de valores de resultado.
default_result
El valor predeterminado devuelto por la función cuando no coincide con ningún valor.