viernes, 11 de abril de 2014

TSQL Devolver parte de una cadena en SQL SERVER, Concatenar y casting o conversiones

Con la funcion SUBSTRING podemos devolver parte de una cadena de un valor almacenado en nuestra Base de datos. Por ejemplo supongamos que tenemos una tabla de clientes con las columnas: Nombre, Apellido1, Apellido2 y queremos devolver una cadena con el nombre y apellidos pero queremos devolver como maximo 40 caracteres. Pues utilizamos el operador + para concatenar los valores cadenas de cada columna. 

Quedaría algo asi: 

select SUBSTRING(nombre + ' ' + apellido1 + ' ' + apellido2, 1, 40)
from clientes


Notas: 

Utilizamos la construcción + ' ' + para que no queden "pegados" el nombre y cada apellido. Introducimos un espacio. De toda la cadena concatenada devolvemos empezando por el caracter 1 los primeros 40 caracteres. Es como se leería el ejemplo. 

Nota Bis:

En caso que tengamos una columna de tipo distinto a cadena tendriamos que hacer un casting o conversión al tipo string. Ejemplo: 

Supongamos que tenemos el campo EDAD de tipo entero. Pues lo convertimos a cadena con tamaño maximo de 15 caracteres con la construcción: cast(FLAG as varchar(15)). La sintaxis quedaría así. 

select nombre + ' ' + cast(EDAD as varchar(15))
FROM CLIENTES

A esto podriamos aplicarle el SUBTRING


select SUBSTRING (nombre + ' ' + cast(EDAD as varchar(15)), 1, 40)
FROM CLIENTES


Si no hicieramos el casting tendriamos un error algo así como: 
Error de conversión al convertir el valor varchar ...



Espero que os haya ayudado. Saludos.

No hay comentarios:

Publicar un comentario

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...