Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Funcion Concat SQL

Estas en el tema de Funcion Concat SQL en el foro de Mysql en Foros del Web. Buenas Tardes, muchachos tengo un pequeño incoveniente. Resulta que estoy concatenando dos campos en una Base de Datos SQL, de la siguiente forma. select *, ...
  #1 (permalink)  
Antiguo 05/05/2011, 16:19
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años, 6 meses
Puntos: 3
Funcion Concat SQL

Buenas Tardes, muchachos tengo un pequeño incoveniente.

Resulta que estoy concatenando dos campos en una Base de Datos SQL, de la siguiente forma.

select *, CONCAT(nombre, " " ,apellidos) as nombrecompleto from clientes order by idclientes

Lo hace bien. pero resulta que si el campo APELLIDOS esta vacio, resulta que no concatena nada, el campo nombrecompleto, queda vacio no deja ni el nombre.

Gracias, espeor su ayuda
  #2 (permalink)  
Antiguo 05/05/2011, 16:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Funcion Concat SQL

Cita:
Lo hace bien. pero resulta que si el campo APELLIDOS esta vacio, resulta que no concatena nada, el campo nombrecompleto, queda vacio no deja ni el nombre.
Por que el campo no está vacío, sino que contiene un NULL. No es lo mismo.
El NULL es un puntero a un estado indeterminado, en cambio el vacío es un dato. Pero como el NULL es una indeterminación, toda operación de suma, resta, multiplicación, división, concatenación, etc. da como resultado NULL.
Así de simple.
Afortunadamente existen funciones que permiten administrar el problema, pero algunas de ellas dependen del DBMS.

Lo más simple es usar IFNULL(campo, valorareemplazar).
Algo así como
Código MySQL:
Ver original
  1. SELECT *, CONCAT(IFNULL(nombre), " " , IFNULL(apellidos)) nombrecompleto
  2. FROM clientes
  3. ORDER BY idclientes
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/05/2011, 16:29
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Funcion Concat SQL

Utiliza la funcion IFNULL para indicarle que si es NULL el primer elemento devuelva una cadena vacía.

Código MySQL:
Ver original
  1. select *, CONCAT(IFNULL(nombre,""), " " ,IFNULL(apellidos,"")) as nombrecompleto from clientes order by idclientes
  #4 (permalink)  
Antiguo 06/05/2011, 08:31
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años, 6 meses
Puntos: 3
Respuesta: Funcion Concat SQL

Gracias muchachos por su coaboracion, esa era la solucion que necesitaba.,.. Perfecta.!

Gracias

Etiquetas: concat, funcion, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:08.