Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problemas con valores nulos (https://www.clubdelphi.com/foros/showthread.php?t=77278)

tbolzan 10-01-2012 13:48:47

Problemas con valores nulos
 
Tengo una tabla en donde quiero realizar un query en donde uno de los campos puede contener valores nulos.
Mi sentencia es la siguiente:

select * from toros t, ves_seminal v
where t.cod_toro=:c
and (t.cod_ves_seminal=v.codigo or t.cod_ves_seminal is null)

El campo t.cod_toro es único.
Si el campo t.cod_ves_seminal tiene valor funciona correctamente, pero si el campo es nulo, me repite el registro tantas veces como valores nulos hay.

Gracias, desde ya

Saludos

Carola

oscarac 10-01-2012 14:28:56

no mencionas la base de datos que estas usando
ademas es logico que se repitan si tiene null porque estas usando el "Or"

define bien o explica mejor que es lo que quieres para poder darte nua mejor ayuda

tbolzan 10-01-2012 15:38:45

Aclaracion
 
Hola, gracias por tu respuesta, a ver si me explico mejor:

La base de datos que uso es Interbase.
Yo tengo las siguientes tablas:

TOROS
cod_toro
descripcion
cod_ves_seminal
....

VES_SEMINAL
codigo
descripcion

quiero que me busque todos los datos de ese toro y me muestre la descripción de la vesícula seminal.
El tema es que si tiene un dato ese campo me lo muestra bárbaro. Pero si el campo cod_ves_seminal tiene valor nulo quiero que no me muestre nada en descripción. Yo pensé que con la sentencia sql anterior funcionaria, pero se ve que no es asi.

Saludos

Carola

oscarac 10-01-2012 15:59:42

Podrias hacer asi

Código SQL [-]
 
Select * from Toros T
Left Join ves_seminal V on t.cod_ves_seminal=v.codigo
Where t.cod_toro = :c

esto te mostrara todos los toros cuyo codigo sea = c y la vesicula seminal solo de aquellos que cumlpan la condicion

pruebalo y comentas

Chris 10-01-2012 16:00:04

Si lo que quieres hacer es una unión, te faltó el JOIN en la clausula SQL que compartiste anteriormente.

Coloca la clausula SQL completa para así ver lo que realmente le falta o tiene malo.

Saludos,
Chris

Casimiro Notevi 10-01-2012 16:01:08

Haz una búsqueda por coalesce, es lo que necesitas.

Por cierto, recuerda poner 'tags' cuando escribas código, ejemplo:



.

tbolzan 11-01-2012 15:51:42

Solucionado
 
Gracias por responder.

Perdon por no poner el tags de codigo, no es muy comun que escriba en el foro por eso no me di cuenta.

Con la respuesta de oscarac me funciono correctamente!!!!:)

Saludos

Carola


La franja horaria es GMT +2. Ahora son las 00:49:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi