concatenar

06/05/2004 - 16:04 por Emerson | Informe spam
qué tal, cómo puedo concatenar dos campos sin setiar concat_null_yields_, ya
que estoy trabajando en un server externo (o puedo hacerlo?),

este es uno de los casos que me da problema:
SELECT id, nombre +SPACE(1)+ ISNULL(apellido, ' ') AS nombre_apellido FROM
...
ya que apellido puede ser nulo y por ende el alias nombre_apellido, el
ISNULL no lo resuelve,

gracias por cualquier ayuda,

Emerson

Preguntas similare

Leer las respuestas

#1 Emilio Boucau
06/05/2004 - 16:42 | Informe spam
Emerson,

la verdad no se por que decis que no lo resuelve. Esto anda ... nunca
tendras un NULL en una columna si la manejas con IsNull(). Acabo de hacer
esta prueba con Pubs:

SET CONCAT_NULL_YIELDS_NULL OFF
SELECT AU_ID, SPACE( 1 )+ ISNULL( AU_LNAME, 'Es NULL') AS nombre_apellido
FROM Authors

SET CONCAT_NULL_YIELDS_NULL ON
SELECT AU_ID, SPACE( 1 )+ ISNULL( AU_LNAME, 'Es NULL') AS nombre_apellido
FROM Authors

y anduvo OK. Es decir, para este caso no importa como este el SET ...


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
#2 ulises
06/05/2004 - 16:49 | Informe spam
Podrías enviar datos de ejemplo, porque eso debería
funcionar, a menos que tu campo "nombre" tenga valores
NULL, en ese caso NULL más cualquier cosa siempre dará
NULL.

Saludos,
Ulises

qué tal, cómo puedo concatenar dos campos sin setiar


concat_null_yields_, ya
que estoy trabajando en un server externo (o puedo


hacerlo?),

este es uno de los casos que me da problema:
SELECT id, nombre +SPACE(1)+ ISNULL(apellido, ' ') AS


nombre_apellido FROM

ya que apellido puede ser nulo y por ende el alias


nombre_apellido, el
ISNULL no lo resuelve,

gracias por cualquier ayuda,

Emerson




.

Respuesta Responder a este mensaje
#3 Emerson
06/05/2004 - 17:48 | Informe spam
gracias, pero tengo que obligar el seteo para que funcione
(CONCAT_NULL_YIELDS_NULL OFF),

seguriré revisando, reitero mis agradecimientos.

EG


"ulises" escribió en el mensaje
news:947301c43379$5ff57e00$
Podrías enviar datos de ejemplo, porque eso debería
funcionar, a menos que tu campo "nombre" tenga valores
NULL, en ese caso NULL más cualquier cosa siempre dará
NULL.

Saludos,
Ulises

qué tal, cómo puedo concatenar dos campos sin setiar


concat_null_yields_, ya
que estoy trabajando en un server externo (o puedo


hacerlo?),

este es uno de los casos que me da problema:
SELECT id, nombre +SPACE(1)+ ISNULL(apellido, ' ') AS


nombre_apellido FROM

ya que apellido puede ser nulo y por ende el alias


nombre_apellido, el
ISNULL no lo resuelve,

gracias por cualquier ayuda,

Emerson




.

Respuesta Responder a este mensaje
#4 ulises
06/05/2004 - 18:09 | Informe spam
Sigo sin entenderte, la opción CONCAT_NULL_YIELDS_NULL
solo te sirve para evitar que la concatenación con NULOS
te de nulos y el campo te lo trate como si fuera un string
vacío, si eso lo controlas con ISNULL ya no es necesario,
por ejemplo :

create table tempo ( idint int primary key,
campo char(1) NULL )
go
insert into tempo values ( 1, 'A' )
insert into tempo values ( 2, NULL )
insert into tempo values ( 3, 'C' )
go
set CONCAT_NULL_YIELDS_NULL on
select idint, 'A' + space(1) + isnull(campo,' ')+ 'Z' from
tempo
select idint, 'A' + space(1) + campo + 'Z' from tempo

resultados :

idint
1 A AZ
2 A Z
3 A CZ

(3 row(s) affected)

idint
1 A AZ
2 NULL
3 A CZ

(3 row(s) affected)

set CONCAT_NULL_YIELDS_NULL off
select idint, 'A' + space(1) + isnull(campo,' ')+ 'Z' from
tempo
select idint, 'A' + space(1) + campo + 'Z' from tempo

resultados :

idint
1 A AZ
2 A Z
3 A CZ

(3 row(s) affected)

idint
1 A AZ
2 A Z
3 A CZ

(3 row(s) affected)

Saludos,
Ulises

gracias, pero tengo que obligar el seteo para que funcione
(CONCAT_NULL_YIELDS_NULL OFF),

seguriré revisando, reitero mis agradecimientos.

EG


"ulises" escribió en el


mensaje
news:947301c43379$5ff57e00$
Podrías enviar datos de ejemplo, porque eso debería
funcionar, a menos que tu campo "nombre" tenga valores
NULL, en ese caso NULL más cualquier cosa siempre dará
NULL.

Saludos,
Ulises

qué tal, cómo puedo concatenar dos campos sin setiar


concat_null_yields_, ya
que estoy trabajando en un server externo (o puedo


hacerlo?),

este es uno de los casos que me da problema:
SELECT id, nombre +SPACE(1)+ ISNULL(apellido, ' ') AS


nombre_apellido FROM

ya que apellido puede ser nulo y por ende el alias


nombre_apellido, el
ISNULL no lo resuelve,

gracias por cualquier ayuda,

Emerson




.





.

Respuesta Responder a este mensaje
#5 Emilio Boucau
06/05/2004 - 18:43 | Informe spam
Emerson,

estoy igual que Ulises, si usas IsNull() no te importa el SET ...


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida