Introducción a la función decode() en SQL
El método de cálculo de funciones único proporcionado por PL/SQL es famoso por su método de operación conciso, modelo de datos controlable y conversión de formato flexible.
Hoy estaba mirando el SQL de otra persona y vi una función decode() en él. Nunca antes había estado expuesto a eso. Lo revisé en línea y me pareció bastante útil. ¡Espero que escribirlo sea útil para mis amigos!
Introducción a la función Decode():
Función principal: traducir los resultados de la consulta a otros valores (es decir, expresados en otras formas, como se muestra a continuación);
Cómo utilizar:
Seleccione
Decodificar (nombre de columna, valor 1, valor de traducción 1, valor 2, valor de traducción 2,... valor n, valor de conversión n, valor predeterminado) p>
Desde
talbename
Donde
<…
donde el nombre de columna está en la tabla que se va a columnas definidas seleccionadas,
Explicación del significado:
decodificar (condición, valor 1, valor de traducción 1, valor 2, valor de traducción 2,... valor n, valor de conversión n, valor predeterminado) de la siguiente manera:
Si
(condición = =valor 1)
Entonces
regresar (valor de traducción 1)
Elcipher
(condición = = valor 2)
Luego
regresar (valor de traducción 2)
. ..
Elsiefer
(condición = =valor n)
Entonces
regresar (valor de traducción n)
Otro
Devolver (valor predeterminado)
Fin
Si
Nota: El valor predeterminado es OK, es la columna que desea seleccionar.
El nombre
en sí también puede ser otros valores que desee definir, como Otro
Por ejemplo:
Ahora, se define una tabla como salida, las dos columnas se definen como id de mes (tipo var) y venta (tipo de número). Si valor de venta =1000, se traducirá a D, C =2000, B =3000, A =4000, y los demás valores se traducirán a otros.
El SQL tiene este aspecto:
Seleccione
Montshed
,
Traducción
(Ventas, 1000, 'D', 2000, 'C', 3000, 'B', 4000, 'A', 'Otro')
Ventas
Desde
Salida
Caso especial:
Si solo se compara un valor.
Seleccione
Montshed
, decodificar (ventas,
null, '-', ventas)
Ventas
Salida de
Además, también se pueden utilizar otras funciones en la decodificación, como la función nvl o la función sign(); p>
NVL(expresión1, expresión2)
Si EXPR1 es NULL, devuelve EXPR2; de lo contrario, devuelve EXPR1.
Seleccione
nombre, NVL(TO_CHAR(COMM), 'no es una
aplicación')
De
Tabla 1;
Si se usa en la función de decodificación, es
pick
monthid,decode(nvl(sale,6000),6000,' NG ', ' OK ')
Salida de
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
pick
monthid,decode(sign(sale-6000),-1,sale,6000 )
Salida de
, 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 el valor correspondiente según el valor de entrada. La lista de parámetros de una función tiene la forma de un par ordenado, que consta de varios valores y sus correspondientes valores de resultado. Por supuesto, si la función no puede hacer coincidir con éxito ningún par de números de parámetros, también tiene un valor de retorno predeterminado.
A diferencia de otras funciones de SQL, la función DECODE también puede identificar y operar con valores nulos.
Sintaxis: decodificar (valor_control, valor 1, resultado 1 [, valor 2, resultado 2...] [, resultado_predeterminado]
Control
_value El valor numérico que está intentando procesar. La función DECODIFICAR compara este valor con una serie de órdenes pares posteriores para determinar el valor de retorno.
Valor1 es un valor numérico que forma un par ordenado. Si el valor de entrada coincide correctamente, se devolverá el resultado correspondiente. Para un valor de retorno nulo, puede utilizar la palabra clave NULL para corresponderle.
Resultado 1
es el resultado de un conjunto de pares ordenados.
Resultado predeterminado
El valor predeterminado devuelto cuando la función no puede coincidir con ningún valor.