Funciones comunes A-C D-G H-L M-Q R-Z Funciones trigonométricas
Funciones escalares de SQL-99 abs ( expresión_numérica ) Devuelve el valor absoluto de "expresión_numérica". Los valores negativos se devuelven en forma de valores positivos. Ejemplo: abs ( 15 ) Resultado: 15 Ejemplo: abs ( -15 ) Resultado: 15 bit_length bit_length ( expresión_serie ) Devuelve el número de bits de "expresión_cadena". cast ( expresión ; especificación_tipo_datos ) Convierte "expresión" al tipo de datos especificado. Algunos tipos de datos permiten especificar longitud y precisión. Asegúrese de que el destino es del tipo y el tamaño adecuados. Para "especificación_tipo_datos", puede utilizarse lo siguiente: character, varchar, char, numeric, decimal, integer, bigint, smallint, real, float, date, time, timestamp, time with time zone, timestamp with time zone e interval. Cuando especifica casting para un tipo de intervalo, debe especificar uno de los siguientes calificadores de intervalo: year, month o year to month para el tipo de datos de intervalo de año a mes; day, hour, minute, second, day to hour, day to minute, day to second, hour to minute, hour to second o minute to second para el tipo de datos de intervalo de día a segundo. Notas: Cuando convierte un valor de tipo timestamp en el tipo date, se pasa por alto la parte de la hora del valor de la indicación de fecha y hora. Al convertir un valor de tipo TIMESTAMP al tipo TIME, se ignora la parte de la fecha del valor de fecha/hora. Al convertir un valor de tipo DATE al tipo TIMESTAMP, los componentes de hora del valor de fecha/hora se establecen en cero. Al convertir un valor de tipo TIME al tipo TIMESTAMP, el componente de fecha se establece en la fecha actual del sistema. No se puede convertir un tipo de datos de intervalo en otro (por ejemplo, porque el número de días de un mes es variable). Tenga en cuenta que sólo puede especificar el número de dígitos para el calificador inicial, por ejemplo, YEAR(4) TO MONTH, DAY(5). Se notificarán errores si el tipo y el tamaño del destino no son compatibles con el tipo y el tamaño del origen. Ejemplo: cast ( '123' ; integer ) Resultado: 123 Ejemplo: cast ( 12345 ; varchar ( 10 ) ) Resultado: Una cadena que contiene 12345 char_length ( expresión_cadena ) Devuelve el número de caracteres lógicos de "expresión_cadena". El número de caracteres lógicos puede ser distinto del número de bytes en algunos entornos locales de Asia Oriental. Ejemplo: char_length ( 'Canadá' ) Resultado: 6 character_length ( expresión_cadena ) Devuelve el número de caracteres de "expresión_cadena". Ejemplo: character_length ( 'Canadá' ) Resultado: 6 current_date current_date Devuelve un valor de fecha que representa la fecha actual del sistema en el que se ejecuta el software de bases de datos. Ejemplo: current_date Resultado: 04-03-03 current_time current_time Devuelve una hora con valor de huso horario que representa la hora actual del sistema en el que se ejecuta el software de bases de datos si la base de datos soporta esta función. De lo contrario, representa la hora actual del sistema en el que se ejecuta el software IBM® Cognos® BI. Ejemplo: current_time Resultado: 16:33:11.354+05:00 current_timestamp current_timestamp Devuelve una fecha y hora con valor de huso horario que representa la hora actual del sistema en el que se ejecuta el software de bases de datos si la base de datos soporta esta función. De lo contrario, representa la hora actual del sistema en el que se ejecuta el software IBM® Cognos® BI. Ejemplo: current_timestamp Resultado: 2003-03-03 16:40:15.535+05:00 localtime localtime Devuelve un valor de hora que representa la hora actual del sistema en el que se ejecuta el software de bases de datos. Ejemplo: localtime Resultado: 16:33:11 localtimestamp localtimestamp Devuelve un valor de fecha y hora que representa la indicación de fecha y hora actual del sistema en el que se ejecuta el software de bases de datos. Ejemplo: localtimestamp Resultado: 2003-03-03 16:40:15 extract ( parte_fecha ; expresión_fechayhora ) Devuelve un entero que representa el valor de parte_fecha (year, month, day, hour, minute, second) de "expresión_fechayhora". Ejemplo: extract ( year , 2003-03-03 16:40:15.535 ) Resultado: 2003 Ejemplo: extract ( hour , 2003-03-03 16:40:15.535 ) Resultado: 16 Ejemplo: extract ( epoch ; 2014-11-23 ) Resultado: 1416718800 lower ( expresión_cadena ) Devuelve la "expresión_cadena" con todos los caracteres en mayúsculas convertidos en minúsculas. Ejemplo: lower ( 'ABCDEF' ) Resultado: abcdef mod ( expresión_entero1; expresión_entero2 ) Devuelve el resto (módulo) de "expresión_entero1" dividida entre "expresión_entero2". "expresión_entero2" no puede ser igual a cero; de lo contrario se crea una condición de excepción. Ejemplo:mod ( 20 ; 3 ) Resultado: 2 occurrences_regex ( expresión_regex , expresión_serie [ , expresión_entera [ , expresión_distintivos ]] ) Devuelve un valor entero que representa el número de apariciones de la expresión "expresión_regex" en la "expresión_serie". La búsqueda comienza en la posición "expresión_entera", que tiene un valor predeterminado de 1. Los distintivos para establecer opciones para la interpretación de la expresión regular se especifican por "expresión_distintivos". Se utilizan letras individuales para definir los distintivos, con valores válidos que empiezan por 's', 'm', 'i' y 'x'. Ejemplo: occurrences_regex ( '.er' , 'Linterna parpadeo') Resultado: 2 octet_length ( expresión_cadena ) Devuelve el número de bytes de "expresión_cadena". Ejemplo: octet_length ( 'ABCDEF' ) Resultado: 6 Ejemplo: octet_length ( '' ) Resultado: 0 position ( expresión_cadena1 ; expresión_cadena2 ) Devuelve el valor entero que representa la posición inicial de "expresión_cadena1" en "expresión_cadena2" o bien 0 cuando no se encuentra "expresión_cadena1". Ejemplo: position ( 'C' ; 'ABCDEF' ) Resultado: 3 Ejemplo: position ( 'H' ; 'ABCDEF' ) Resultado: 0 position_regex ([ start|after ]  expresión_regex , expresión_serie [ , expresión_entera1 [ , expresión_entera2 [ , expresión_distintivos ]]] ) Devuelve el valor entero que representa la posición de inicio o final de la subcadena en "expresión_cadena" que coincide con la expresión regular "expresión_regex". La búsqueda comienza en la posición "expresión_entera1", que tiene un valor predeterminado de 1. La aparición del patrón para buscar se especifica por "expresión_entera2", que tiene un valor predeterminado de 1. La opción de volver, especificada por el primer argumento, especifica lo que se devuelve en relación con la incidencia. Si especifica "inicio", se devuelve la posición del primer carácter de la incidencia. Si especifica "después", se devuelve la posición del carácter después de la incidencia. Si no especifica una opción de retorno, la opción de "inicio" es la opción implícita. Los distintivos para establecer opciones para la interpretación de la expresión regular se especifican por "expresión_distintivos". Se utilizan letras individuales para definir los distintivos, con valores válidos que empiezan por 's', 'm', 'i' y 'x'. Ejemplo: position_regex ( '.er' , 'Linterna parpadeo') Resultado: 5 Ejemplo: position_regex ( after '.er' , 'Linterna parpadeo' ) Resultado: 8 Ejemplo: position_regex ( '.er' , 'Linterna parpadeo' , 1 , 2 ) Resultado: 12 trim ( [ [ trailing|leading|both ] [ expresión_coincid_carácter ] ; ] expresión_cadena ) Devuelve "expresión_cadena" de la que se han eliminado los espacios en blanco anteriores y posteriores o bien un determinado carácter especificado en "expresión_coincid_carácter". El parámetro "both" se da por supuesto cuando no se ha indicado el primer argumento, y se da por supuesta una cadena vacía cuando no se ha indicado el segundo argumento. Ejemplo: trim ( trailing 'A' ; 'ABCDEFA' ) Resultado: ABCDEF Ejemplo: trim ( both ; ' ABCDEF ' ) Resultado: ABCDEF upper ( expresión_cadena ) Devuelve "expresión_cadena" con todos los caracteres en minúsculas convertidos a mayúsculas. Ejemplo: upper ( 'abcdef' ) Resultado: ABCDEF user user Especifica un identificador de autorización en tiempo de ejecución al gestor de la base de datos nullif nullif ( expresión1; expresión2 ) Devuelve NULL si "expresión1" es igual a "expresión2". De lo contrario, devuelve "expresión1". coalesce ( lista_expresiones ) Devuelve el primer argumento no nulo (o nulo si todos los argumentos son nulos). Necesita dos o más argumentos en "lista_expresiones". coalesce ( [Precio unitario]; [Precio de venta unitario] ) Resultado: Devuelve el precio unitario o el precio de venta unitario si el precio unitario es un valor nulo. coalesce ( lista_expresiones ) Devuelve el primer argumento no nulo (o nulo si todos los argumentos son nulos). Necesita uno o más argumentos en "lista_expresiones". coalesce ( [Precio unitario]; [Precio de venta unitario] ) Resultado: Devuelve el precio unitario o el precio de venta unitario si el precio unitario es un valor nulo. ceil ( expresión_numérica ) Devuelve el entero más pequeño que sea igual o mayor que "expresión_numérica". ceiling ( expresión_numérica ) Devuelve el entero más pequeño que sea igual o mayor que "expresión_numérica". Ejemplo: ceiling ( 4.22 ) Resultado: 5 Ejemplo: ceiling ( -1.23 ) Resultado: -1 ln ( expresión_numérica ) Devuelve el logaritmo natural de "expresión_numérica". Ejemplo: ln ( 4 ) Resultado: 1,38629 exp ( expresión_numérica ) Devuelve "e" elevado a "expresión_numérica". La constante "e" es la base del logaritmo natural. Ejemplo: exp ( 2 ) Resultado: 7.389056 period ( expresión_fechayhora1 , expresión_fechayhora2 ) Construye un valor de periodo con un punto de partida de "expresión_fechayhora1" y un punto final de "expresión_fechayhora2". Los tipos de datos de los puntos de partida y final deben ser idénticos, y pueden ser uno de fecha, hora o de fecha y hora. Los valores de periodo se pueden utilizar en predicados de periodo. Ejemplo: period ( 2003-03-03 ; 2003-10-03 ) Ejemplo: period ( 12:00:00 , 23:59:59 ) Ejemplo: period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) Ejemplo: period ( [EMP].[INICIO_BUS] , [EMP].[FIN_BUS] ) power ( expresión_numérica1 , expresión_numérica2 ) Devuelve "expresión_numérica1" elevado a "expresión_numérica2". Si el valor de "expresión_numérica1" es negativo, el resultado de "expresión_numérica2" debe ser un valor entero. Ejemplo: power ( 3 , 2 ) Resultado: 9 random ( [ integer_expression ] ) Devuelve un valor flotante aleatorio comprendido entre el 0 y el 1, utilizando el valor de "integer_expression" opcional como valor de origen. _round ( expresión_numérica , expresión_entera ) Devuelve el valor de "expresión_numérica" redondeado "expresión_entero" dígitos a la derecha del separador decimal. Notas: "expresión_entero" debe ser un entero no negativo. El redondeo se debe realizar antes de aplicar el formateo de datos. Ejemplo: _round ( 1220.42369; 2 ) Resultado: 1220,42 El constructor de fila representa una colección de valores organizados como una fila de datos. Se puede utilizar en expresiones condicionales (por ej. IF-THEN-ELSE) y expresiones de filtro (por ej. cláusulas IN). row ( lista_expresiones ) Ejemplo: if ( row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') Resultado: Devuelve'A' si el nombre del minorista es 'ActiForme' y el código de método de pedido es 4. De lo contrario, se devuelve el valor 'B'. Ejemplo: case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end Resultado: Devuelve 1 si el nombre del minorista es 'Advanced Climbing Ltd' y el código de método de pedido es 3. Devuelve 2 si el nombre del minorista es 'ActiForme' y el código de método de pedido es 5. De lo contrario, se devuelve el valor 3. Ejemplo: row ( [OrderMethodCode], [Year] ) in ( [Query].[OMC], [Query].[YR] ) Resultado: Los datos devueltos se filtran en las dos siguientes condiciones: 1) [OrderMethodCode] in ([Query].[OMC]) 2) [Year] in ([Query].[YR]) sqrt ( expresión_numérica ) Devuelve la raíz cuadrada de "expresión_numérica". El valor de "expresión_numérica" debe ser no negativo. Ejemplo: sqrt ( 9 ) Resultado: 3 substring ( expresión_cadena ; expresión_entero1[ ; expresión_entero2 ] ) Devuelve la subcadena de "expresión_cadena" que comienza en la posición indicada por "expresión_entero1" y tiene una longitud de "expresión_entero2" caracteres o hasta el final de "expresión_cadena" si se omite "expresión_entero2". El primer carácter de "expresión_cadena" corresponde a la posición 1. Ejemplo: substring ( 'abcdefg' ; 3 ; 2 ) Resultado: cd substring_regex ( expresión_regex , expresión_serie [ , expresión_entera1 [ , expresión_entera2 [ , expresión_distintivos ]]] ) Devuelve la subcadena de "expresión_cadena" que coincide con la expresión regular "expresión_regex". La búsqueda comienza en la posición "expresión_entera1", que tiene un valor predeterminado de 1. La incidencia del patrón para buscar se especifica por "expresión_entera2", que tiene un valor predeterminado de 1. Los distintivos para establecer opciones para la interpretación de la expresión regular se especifican por "expresión_distintivos". Se utilizan letras individuales para definir los distintivos, con valores válidos que empiezan por 's', 'm', 'i' y 'x'. Ejemplo: substring_regex ( '.er' , 'Linterna parpadeo') Resultado: ker Ejemplo: substring_regex ( '.er' , 'Linterna parpadeo' , 1 , 2 ) Resultado: ter floor ( expresión_numérica ) Devuelve el entero más grande que sea igual o menor que "expresión_numérica". Ejemplo: floor ( 3.22 ) Resultado: 3 Ejemplo: floor ( -1.23 ) Resultado: -2 width-bucket ( expresión_numérica ;  valor_mín ;  valor_máx ;  núm_de_buckets ) Para una expresión determinada, esta función devuelve el número de bucket que correspondería al valor de esta expresión tras su evaluación. Ejemplo: width-bucket ( Cantidad ;  100 ;  5000 ;  10 ) Resultado: para cada fila, devuelve el número de grupo (del 0 al 11) para el valor actual de "Cantidad". Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( expresión_numérica ) Esta función trigonométrica devuelve el seno del argumento, donde el argumento es un ángulo expresado en radianes. Ejemplo:sin ( 0.1667 * 3.1415 ) Resultado: 0,5 cos ( expresión_numérica ) Esta función trigonométrica devuelve el coseno del argumento, donde el argumento es un ángulo expresado en radianes. Ejemplo: cos ( 0.3333 * 3.1415 ) Resultado: 0,5 tan ( expresión_numérica ) Esta función trigonométrica devuelve la tangente del argumento, donde el argumento es un ángulo expresado en radianes. Ejemplo: tan ( 0.25 * 3.1415 ) Resultado: 1 arccos ( expresión_numérica ) Esta función trigonométrica inversa devuelve el arcocoseno del argumento, donde el argumento está comprendido dentro del rango -1 a 1 y el resultado es un valor expresado en radianes. Ejemplo: arccos ( -1 ) Resultado: 3,1415 arcsin ( expresión_numérica ) Esta función trigonométrica inversa devuelve el arcoseno del argumento, donde el argumento está comprendido dentro del rango -1 a 1 y el resultado es un valor expresado en radianes. Ejemplo: arcsin ( 0 ) Resultado: 3,1415 Esta función trigonométrica inversa devuelve la arcotangente del argumento, donde el argumento está comprendido dentro del rango -1 a 1 y el resultado es un valor expresado en radianes. arctan ( expresión_numérica ) Ejemplo: arctan ( 0 ) Resultado: 3,1415 coshyp ( expresión_numérica ) Esta función trigonométrica devuelve el coseno hiperbólico del argumento, donde el argumento es un ángulo expresado en radianes. Ejemplo: coshyp ( 0 ) Resultado: 1 sinhyp ( expresión_numérica ) Esta función trigonométrica devuelve el seno hiperbólico del argumento, donde el argumento es un ángulo expresado en radianes. Ejemplo: sinhyp ( 0 ) Resultado: 0 tanhyp ( expresión_numérica ) Esta función trigonométrica devuelve la tangente hiperbólica del argumento, donde el argumento es un ángulo expresado en radianes. Ejemplo: tanhyp ( 0 ) Resultado: 0
Extensiones OLAP de las funciones de SQL-99 cube cube ( lista_referencia_columna_de_agrupación ) Ésta es una cláusula "group by" que devuelve un conjunto de listas agrupadas. Dicha lista contiene un conjunto de todas las combinaciones posibles de las columnas de agrupación en "lista_referencia_columna_de_agrupación". rollup rollup ( lista_referencia_columna_de_agrupación ) Ésta es una cláusula "group by" que devuelve un conjunto de listas agrupadas. Dicha lista contiene un conjunto agrupado para cada sublista adecuada de "lista_referencia_columna_de_agrupación" en la que se eliminan los elementos uno a uno, comenzando por la derecha. grouping sets grouping sets ( lista_conjunto_de_agrupación ) Ésta es una cláusula "group by" que especifica varios conjuntos por los que agrupar. rank rank () Calcula la clasificación de la fila dentro de la partición de la ventana. La clasificación de la fila x se define como 1 más el número de filas que preceden a x pero que no están a su mismo nivel. dense_rank dense_rank () Calcula la clasificación de densidad de la fila dentro de la partición de la ventana. La clasificación de densidad de la fila x se define como el número de filas distintas que preceden a x, incluyendo a ésta. percent_rank percent_rank () Calcula la clasificación porcentual de la fila dentro de la partición de la ventana. La clasificación porcentual de la fila x se define como (xy - 1) / (ab - 1), donde xy es la clasificación de x y ab es el número de filas dentro de la partición de la ventana. row_number row_number () Calcula el número secuencial de fila para las filas de una partición de la ventana, asignando el valor 1 a la primera fila. ntile ntile ( expresión_numérica ) Divide un conjunto de datos ordenado en un número de buckets definido por "expresión_numérica". También asigna el número de bucket correspondiente a cada fila.