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

problema en la anidacion de 2 nvarchar

Estas en el tema de problema en la anidacion de 2 nvarchar en el foro de SQL Server en Foros del Web. resulta que tengo una consulta en la cual anido los valores de 2 campos del mismo tipo (nvarchar(20)) pero en caso de que uno sea ...
  #1 (permalink)  
Antiguo 18/06/2010, 11:33
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 217
Antigüedad: 15 años, 7 meses
Puntos: 1
Exclamación problema en la anidacion de 2 nvarchar

resulta que tengo una consulta en la cual anido los valores de 2 campos del mismo tipo (nvarchar(20)) pero en caso de que uno sea null entonces me devuelve el campo en null, este es mi sentencia:



SELECT DISTINCT PERSONA.TX_AUTO_PERS as ID_PERSONA,
PERSONA.TX_DESC_TIDO TIPO_DOCUMENTO,
PERSONA.TX_DOCU_PERS DOCUMENTO,
PERSONA.TX_NOM1_PERS + ' ' +
PERSONA.TX_NOM2_PERS AS NOMBRE,
PERSONA.TX_APE1_PERS + ' ' +
PERSONA.TX_APE2_PERS AS APELLIDO,
PERSONA.NU_EDAD_PERS EDAD,
SEXO.TX_DESC_SEXO GENERO
FROM (SEXO SEXO
INNER JOIN PERSONA PERSONA ON (SEXO.TX_AUTO_SEXO = PERSONA.TX_AUTO_SEXO_PERS) WHERE (PERSONA.NU_ELIM <> 1)


El caso en es que en la parte de anidar los nombres o los apellidos y si uno de los dos llega a ser null entonces me devuelve el campo en null

ayuda urgente
__________________
cuidensen y que arceus los acompanhe
  #2 (permalink)  
Antiguo 18/06/2010, 11:42
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: problema en la anidacion de 2 nvarchar

Usa la funcion ISNULL().
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 19/06/2010, 09:09
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 217
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

ya encontre el problema, lo que pasa es que null no se puede usar en operaciones aritmeticas, logicas o de concatenacion de caracteres porque siempre devolvera null

1 + null = null

entonces coloque un case when que (case when PERSONA.TX_NOM2_PERS is null then ...) y asi supe si es null o no (no usar =,>,< o <> porque no funcionaran) espero sles sirva a todos
__________________
cuidensen y que arceus los acompanhe
  #4 (permalink)  
Antiguo 21/06/2010, 07:41
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

para la concatenacion tambien podrias usar el "&" asi ya no confunde una funcion aritmetica... y convierte todo a nVarchar... Saludos!!!
  #5 (permalink)  
Antiguo 22/06/2010, 05:16
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 217
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

como ya lo dije null no se puede usar en concatenaciones porque es un valor desconocido de modo que porfavor -rommel_ pon mas atencion a lo que lees
__________________
cuidensen y que arceus los acompanhe
  #6 (permalink)  
Antiguo 22/06/2010, 09:37
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

Si esta bien... como lo dijo flaviovich utiliza la instruccion isnull(Campo1) y combinala con lo que yo te mencionaba... SOLO PARA caracteres

Select isnull(Campo1,'') & isnull(Campo2,'')
from Table

ojala y te ayude en algo... Saludos!!!
  #7 (permalink)  
Antiguo 22/06/2010, 14:03
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 217
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

bueno pero primero esactamente que pasa si el valor de la concatenacion llega a ser null entonces que me devuelve la funcion isnull, aunque ya lo tengo solucionado con un case when pero bueno
__________________
cuidensen y que arceus los acompanhe
  #8 (permalink)  
Antiguo 22/06/2010, 14:13
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: problema en la anidacion de 2 nvarchar

Lo logico y rapido es que busques en google sobre esa funcion.
O sino en tus BOL (Books OnLine).
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 22/06/2010, 14:33
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 217
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

Cita:
Iniciado por flaviovich Ver Mensaje
Lo logico y rapido es que busques en google sobre esa funcion.
O sino en tus BOL (Books OnLine).
y porque en ves de desacelerar las cosas diciendo eso porque no mas bien das la respuesta a la pregunta y listo
__________________
cuidensen y que arceus los acompanhe
  #10 (permalink)  
Antiguo 22/06/2010, 14:39
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: problema en la anidacion de 2 nvarchar

Porque a parte de ayudar a las personas aca tambien enseñamos buenos habitos de aprendizaje.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 22/06/2010, 15:05
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: problema en la anidacion de 2 nvarchar

Exacto... no todo sabemos... cuando ocurre una pregunta en el Foro (en cualquier foro) quien esta listo al tema, responde y quien no... CON EL BUEN HABITO DE APRENDIZAJE empieza a buscar informacion del mismo... para poder ayudarte... es facil...
  #12 (permalink)  
Antiguo 22/06/2010, 15:41
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: problema en la anidacion de 2 nvarchar

Les digo.......hay gente que incluso, quieren que les hagas el query, lo pruebes, le des tunning y luego se los envies.....

haaaaa y rapidito y de buen modo.........
  #13 (permalink)  
Antiguo 22/06/2010, 16:06
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 217
Antigüedad: 15 años, 7 meses
Puntos: 1
Información Respuesta: problema en la anidacion de 2 nvarchar

Cita:
Iniciado por iislas Ver Mensaje
Les digo.......hay gente que incluso, quieren que les hagas el query, lo pruebes, le des tunning y luego se los envies.....

haaaaa y rapidito y de buen modo.........
siiiii señoooor



aqui va el query que hice usando el case when (es muy sencillo en si)

SELECT DISTINCT PERSONA.TX_AUTO_PERS as ID_PERSONA,
PERSONA.TX_DESC_TIDO TIPO_DOCUMENTO,
PERSONA.TX_DOCU_PERS DOCUMENTO,
case when PERSONA.TX_NOM2_PERS is not null then PERSONA.TX_NOM1_PERS + ' ' +
PERSONA.TX_NOM2_PERS else PERSONA.TX_NOM1_PERS end AS NOMBRE,
case when PERSONA.TX_APE2_PERS is not null then PERSONA.TX_APE1_PERS + ' ' +
PERSONA.TX_APE2_PERS else PERSONA.TX_APE1_PERS end AS APELLIDO,
PERSONA.NU_EDAD_PERS EDAD,
SEXO.TX_DESC_SEXO GENERO
FROM (SEXO SEXO
INNER JOIN PERSONA PERSONA ON (SEXO.TX_AUTO_SEXO = PERSONA.TX_AUTO_SEXO_PERS) WHERE (PERSONA.NU_ELIM <> 1)


lo complicado del problema era saber que null no se puede usar en operaciones matematicas, logicas o de concatenacion porque o si no me devolvera null (no les parese que es una porqueria el que null cause tanto problema)


avisenme cualquier cosa en que les pueda ayudar
__________________
cuidensen y que arceus los acompanhe

Última edición por porygon_humano; 22/06/2010 a las 16:07 Razón: pequena correccion sintactica

Etiquetas: anidacion, nvarchar
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 01:05.