You are on page 1of 6

FUNCIONES DE CADENA

Las funciones de cadena trabajan con campos char y varchar por lo que los
literales que escribamos se deben encerrar entre comillas simples.

Estas funciones que vamos a explicar a continuación pueden manipular


cadenas de letras u otros caracteres por lo que las vamos a dividir en dos
grupos:

Funciones que devuelven caracteres

Este tipo de funciones devuelven un carácter o varios caracteres.

Función Propósito
Nos devuelve el carácter cuyo valor en
CHR(n)
binario es n
CONCAT(cad1, cad2) Nos devuelve cad1 concatenada con cad2
UPPER(cad) Convierte cad a mayúsculas
LOWER(cad) Convierte cad a minúsculas
Con esta función añadimos caracteres a
LPAD(cad1,n[,cad2]) cad1 por la izquierda hasta una longitud
máxima dada por n
Convierte la primera letra de cad a
INITCAP(cad)
mayúscula
Elimina un conjunto de caracteres a la
LTRIM(cad [,set]) izquierda de cad, siendo set el conjunto
de caracteres a eliminar
Con esta función añadimos caracteres de
RPAD(cad1, n[,cad2]) la misma forma que con la función LPAD
pero esta vez los añadimos a la derecha
Hace lo mismo que LTRIM pero por la
RTRIM(cad[,set])
derecha
Sustituye un conjunto de caracteres de 0
REPLACE(cad,cadena_buscada o más caracteres, devuelve cad con cada
[,cadena_sustitucion] ) ocurrencia de cadena_buscada sustituida
por cadena_sustitucion
Devuelve la subcadena de cad que abarca
SUBSTR(cad, m[,n]) desde m hasta el numero de caracteres
dados por n.
TRANSLATE(cad1,cad2,cad3) Convierte caracteres de una cadena en
caracteres diferentes. Devuelve cad1 con
los caracteres encontrados en cad2 y
sustituidos por los caracteres de cad3

Ponemos algunos ejemplos de utilización de estas funciones:

Sentencia sql que nos devuelve las letras cuyo valor el es el 45 y el 23


Sentencia sql que obtiene el nombre de los alumnos sacando por pantalla la
siguiente frase: 'el nombre del paciente es' (nombre que está almacenado
en la tabla paciente)
Sentencia sql que me devuelve los nombres de los alumnos en mayúsculas
Sentencia sql que obtiene de un campo nombre, las 3 primeras letras
Y asi con el resto de funciones…

Funciones que devuelven valores numéricos

Estas funciones nos devuelven números a modo de información.

Función Propósito
ASCII(cad) Devuelve el valor ASCII de la primera letra de cad
Función que busca un conjunto de caracteres
INSTR(cad1,
dentro de una cadena. Nos devuelve la posición de
cad2[,comienzo[,m]])
cad2 en cad1 empezando a buscar en comienzo
LENGTH(cad) Devuelve en número de caracteres de cad

Como con las funciones anteriores dejamos unos ejemplos para que veas su
funcionamiento.
Sentencia sql que nos devuelve el valor ASCII de la letra ('s')
Sentencia que nos devuelve la posición de la ocurrencia 'pe' dentro de la
cadena 'Los perros están bien' a partir de la posición 2
Sentencia sql que nos devuelve el numero de caracteres de los nombres de
los alumnos

FUNCIONES MATEMATICAS

Una función matemática realiza una operación matemática en expresiones


numéricas y devuelve el resultado de la operación. Las funciones
matemáticas operan sobre datos numéricos suministrados por el sistema
SQL Server: decimal, integer, float, real, money, smallmoney, smallint y
tinyint. De manera predeterminada, la precisión de las operaciones
integradas para el tipo de datos float es de seis decimales.
De forma predeterminada, un número pasado a una función matemática será
interpretado como un tipo de datos decimal. Se puede usar las funciones
CAST o CONVERT para cambiar el tipo de datos a otro distinto, por
ejemplo, float. Por ejemplo, el valor devuelto por la función FLOOR tiene el
tipo de datos del valor de entrada. La entrada de la siguiente instrucción
SELECT es un decimal. FLOOR devuelve 123. Éste es un valor decimal.
Cuando el resultado float o real de una función matemática es demasiado
pequeño para mostrarse, se produce un error de desbordamiento negativo
de punto flotante. El resultado devuelto será 0,0 y no se mostrará ningún
mensaje de error. Por ejemplo, el cálculo matemático de 2 elevado a la
potencia -100,0 daría el resultado 0,0.
Los errores de dominio se producen cuando el valor proporcionado en la
función matemática no es válido. Por ejemplo, los valores especificados para
la función ASIN deben ser de -1,00 a 1,00. Si se especifica el valor -2, por
ejemplo, se produce un error de dominio.
Los errores de intervalo se producen cuando el valor especificado se
encuentra fuera de los valores permitidos. Por ejemplo, POWER(10,0, 400)
excede el valor máximo (~2e+308) del intervalo para el tipo de datos float y
POWER(-10,0, 401) es menor que el valor mínimo (~ -2e+308) del intervalo
para el tipo de datos float.
En la siguiente tabla se muestran funciones matemáticas que producen un
error de dominio o de intervalo.

Función
matemática Resultado
SQRT(-1) Error de dominio.
POWER(10,0, 400) Error de desbordamiento aritmético.
POWER(10,0, -400) Valor 0,0 (desbordamiento negativo de punto
flotante).

Se proporcionan capturas de error para controlar los errores de dominio o


de intervalo de estas funciones. Puede utilizar lo siguiente:
• SET ARITHABORT ON. Esta opción termina la consulta y finaliza la
transacción definida por el usuario. La configuración de SET
ARITHABORT suplanta la configuración de SET ANSI_WARNINGS.
• SET ANSI_WARNINGS ON. Esta opción detiene el comando.
• SET ARITHIGNORE ON. Esta opción impide la visualización de un
mensaje de advertencia. Tanto la configuración de SET
ARITHABORT como de SET ANSI_WARNINGS suplantan la
configuración de SET ARITHIGNORE
FUNCIONES DE FECHA

Dentro de SQL tenemos un tipo de dato denominado DATE. Este


campo tiene el siguiente formato predeterminado:

'dd/mm/yy'

Este formato lo podemos modificar con la función TO_CHAR de la


cual hablaremos más adelante en el siguiente artículo.

Cabe señalar que el tipo de dato DATE también almacena la siguiente


información en el siguiente orden:

Siglo/Año/Mes/Día/Hora/Minutos/Segundos

A continuación mostramos una tabla con las funciones para el manejo


de fechas en SQL:

Función Propósito
SYSDATE Devuelve la fecha del sistema
ADD_MONTHS (fecha, n) Devuelve la fecha incrementada en n meses
Devuelve la fecha del último día del mes que
LAS_DAY (fecha)
contiene fecha
MONTHS_BETWEEN Devuelve la diferencia en meses entre la fecha1 y
(fecha1, fecha2) la fecha2
Devuelve la fecha del primer día de la semana
indicado por cad después de la fecha indicada por
NEXT_DAY (fecha, cad)
fecha. Cad será siempre un día de la semana
escrito con letras, por ejemplo Monday.

Ahora pasamos a poner algún ejemplo práctico para que os hagáis una idea
de cómo es. De la primera función no hace falta ya que es bastante sencilla,
tan solo tenéis que poner la función y os devuelve la fecha actual del
sistema.
FUNCIONES DE CONVERSION
Use las funciones de conversión CAST y CONVERT para convertir
expresiones de un tipo de datos a otro, cuando SQL Server no realice
automáticamente las conversiones de tipos de datos. Por ejemplo, si se
compara una expresión char con una expresión datetime o una expresión
smallint con una expresión int, o expresiones char de distintas longitudes,
SQL Server las convierte automáticamente. Esto se denomina conversión
implícita. No es necesario utilizar CAST ni CONVERT para estas
conversiones implícitas. Sin embargo, se puede utilizar CAST y CONVERT
en los escenarios de conversión siguientes:
• Cuando dos expresiones tienen exactamente el mismo tipo de datos.
• Cuando dos expresiones se pueden convertir de forma implícita.
Cuando es necesario convertir de forma explícita los tipos de datos.
Si intenta realizar una conversión que no es posible (por ejemplo, convertir
una expresión char que incluya letras a int), SQL Server muestra un
mensaje de error.
También se pueden utilizar las funciones CAST y CONVERT para obtener
diversos formatos de datos especiales, así como en la lista de selección, en
la cláusula WHERE y en cualquier parte en donde se permita una expresión.
Si desea que el código de programa de Transact-SQL cumpla el estándar
SQL-92, utilice CAST en lugar de CONVERT. Utilice CONVERT en lugar de
CAST para aprovechar la funcionalidad de CONVERT.
Cuando se utiliza CAST o CONVERT, se necesita la siguiente información:
• La expresión que se va a convertir; por ejemplo, un informe de ventas
necesitaría que los datos de ventas se convirtieran de datos de
moneda a datos de caracteres.
• El tipo de datos al que se va a convertir la expresión especificada;
por ejemplo, varchar o cualquier otro tipo de datos del sistema de
SQL Server.
A menos que guarde el valor convertido, una conversión sólo será válida
mientras dure la función CAST o CONVERT.
Si no especifica ninguna longitud cuando se convierte al tipo de datos, SQL
Server suministra automáticamente la longitud 30.