Funciones de cadena en SQL

  • Por
Pasamos a describir y explicar las funciones de cadenas dentro de sql y las dividimos en dos grupos, las que devuelven caracteres y las que devuelven números.
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
CHR(n) Nos devuelve el carácter cuyo valor en 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
LPAD(cad1,n[,cad2]) Con esta función añadimos caracteres a cad1 por la izquierda hasta una longitud máxima dada por n
INITCAP(cad) Convierte la primera letra de cad a mayúscula
LTRIM(cad [,set]) Elimina un conjunto de caracteres a la izquierda de cad, siendo set el conjunto de caracteres a eliminar
RPAD(cad1, n[,cad2]) Con esta función añadimos caracteres de la misma forma que con la función LPAD pero esta vez los añadimos a la derecha
RTRIM(cad[,set]) Hace lo mismo que LTRIM pero por la derecha
REPLACE(cad,cadena_buscada [,cadena_sustitucion] ) Sustituye un conjunto de caracteres de 0 o más caracteres, devuelve cad con cada ocurrencia de cadena_buscada sustituida por cadena_sustitucion
SUBSTR(cad, m[,n]) Devuelve la subcadena de cad que abarca 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 asccii es el 45 y el 23

select CHR(45), CHR(23) FROM TABLA;

Sentencia sql que obtiene el nombre de los alumnos sacando por pantalla la siguiente frase: el nombre del alumno es (nombre que esta almacenado en la tabla)

select CONCAT ('el nombre de alumno es', nombre) from alumno;

Sentencia sql que me devuelve los nombres de los alumnos en mayúsculas

select UPPER(nombre) from alumno;

Sentencia sql que obtiene de un campo nombre, las 3 primeras letras

select SUBSTR(nombre,0,3) from alumno;

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
INSTR(cad1, cad2[,comienzo[,m]]) Función que busca un conjunto de caracteres dentro de una cadena. Nos devuelve la posición de 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 veáis su funcionamiento.

Sentencia sql que nos devuelve el valor ASCII de la letra ('s')

select ASCII('s') from tabla;

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

select INSTR('Los perros están bien','pe',2) from tabla;

Sentencia sql que nos devuelve el numero de caracteres de los nombres de los alumnos

select LENGTH(nombre) from alumnos;

Autor

Sara Alvarez

Equipo DesarrolloWeb.com

Compartir

Comentarios

Carlos Colorado

27/8/2009
Funcion INSTR
Saludos, estuve revisando los manuales y al momento de usar la funcion que propones para devolver la ocurrencia de una cadena dentro de otra me devuelve error, la sentencia es correcta? estuve revisando y encontre que esta funcion es de Visual.....

ALEJANDRA

21/2/2010
DAR GRACIAS
REALMENTE GRACIAS POR LA INFORMACION.
TENIA MAS DE 3 HORAS INTENTANDO HACER UNAS CONSULTAS
QUE ME PEDIAN Y NO LOGRABA HACERLO.
Y CON ESTA INFORMACION ME LOGRO SALIR!


GRACIAS!!!

Pablo

28/7/2010
LTrim -RTrim
Me parece que no es correcto la definición que aperece. Solo quita los espacios en blancos

adlkh

13/4/2011
sql - funciones de texto
Gracias por la información.
Ahora busco dos cosas mas.
La primer es como crear campos con un valor numérico que tome valores de forma automática al insertar un registro en la tabla.
La otra es sql usa open office base. de MuSQL, de Oracle, ...

Mario VR

18/5/2012
La instruccion INSTR
No se si esa instruccion sea de SQL, estandar, en SQL SERVER no funciona. la instruccion correcta seria:

select CHARINDEX ('pe','Los perros están bien' ,1)

pamatros: CADENA QUE SE BUSCA, CADENA EN LA QUE SE VA A BUSCAR, A PARTIR DE CUAL POSICION.

Mauro

28/7/2014
Muchisismas Gracias
Gente como vos hacen a la internet poderosa. Muchas Gracias