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
#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

Mostrar la cita
concat_null_yields_, ya
Mostrar la cita
hacerlo?),
Mostrar la cita
nombre_apellido FROM
Mostrar la cita
nombre_apellido, el
Mostrar la cita
#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

Mostrar la cita
concat_null_yields_, ya
Mostrar la cita
hacerlo?),
Mostrar la cita
nombre_apellido FROM
Mostrar la cita
nombre_apellido, el
Mostrar la cita
#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

Mostrar la cita
mensaje
Mostrar la cita
#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
Ads by Google
Search Busqueda sugerida