Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2009
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
en SQL Server podes hacer esto:

Código SQL [-]
select isNull((select CAMPO from TABLA where CONDICION),0) as NombreCampo

Nota: debe ir con esos parentesis, si los sacas da error de sintaxis, asi que copialo tal cual

Saludos
Responder Con Cita
  #2  
Antiguo 05-04-2009
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por javier7ar Ver Mensaje
en SQL Server podes hacer esto:


Código SQL [-]
select isNull((select CAMPO from TABLA where CONDICION),0)





Nota: debe ir con esos parentesis, si los sacas da error de sintaxis, asi que copialo tal cual

Saludos
NO Javier.
ISNULL, sería como IFNULL, y hasta un DECODE o CASE comparando si es NULL, porque el NULL es el resultado de la existencia de un campo cuyo valor es nulo, pero si no existe registro? NULL sería siendo NULL.
Ejemplo, si tengo 3 campos, y uno de ellos es NULL con esa funcion SI podria devolver 0, pero si no existe ninguno de los 3 campos? NULL es NULL, no puede ser NULL lo que no existe, he aquí el dilema en cuestión.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #3  
Antiguo 05-04-2009
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
no MaMu, probalo que eso anda, pero solo funciona cuando el select de adentro devuelve 1 sola fila o no devuelve ninguna fila (porque cuando no devuelve ninguna en SQL Server se puede tomar como NULL) si devuelve mas de una fila te va a dar error. Probalo
Saludos
Responder Con Cita
  #4  
Antiguo 05-04-2009
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
otra cosa a tener en cuenta, si trabajas con delphi, supongo que vas a tener una consulta con este SQL

Código SQL [-]
select CAMPO
from TABLA
where CONDICION

al abrir la Query, si el valor de CAMPO es NULL o si la Query esta vacia (no se devolvieron filas como el caso que planteas) el valor de Query['CAMPO'] va a ser NULL en los dos casos, y ahi es donde tenes que aplicar la funcion isNull (en el codigo del Delphi) Por lo menos asi soluciono yo estos temas.
Entonces te quedaria asi:

Query.Open;
variable:=isNull(Query['CAMPO'],0);
Query.Close;

Funciona tanto para cuando el campo es NULL o para cuando no hay resultado.

Nota: La funcion isNull en Delphi no existe, asi que la tenes que hacer vos, seria algo asi:
Código Delphi [-]
Function IsNull(A,B:Variant):Variant;
begin
  if (A <> NULL) then
    isNull:=A
  else
    isNUll:=B;
end;
Responder Con Cita
  #5  
Antiguo 05-04-2009
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
javier7ar

Bueno pensándolo como lo expusiste es una buena idea. Lo voy a probar.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Commando IBtable1.Exists no me funciona pmtzg Conexión con bases de datos 1 04-06-2008 10:25:53
Problema serios con predicados IN, NOT IN, EXISTS, ... mlara Firebird e Interbase 7 15-05-2008 19:43:41
Transaccion con if y con exists zvf SQL 4 18-09-2007 18:52:44
Error en el Exists Payola2011 MySQL 7 31-01-2006 19:17:47
-502 Declared cursor already exists Carlitos Firebird e Interbase 4 30-09-2003 17:18:22


La franja horaria es GMT +2. Ahora son las 16:31:33.


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
Copyright 1996-2007 Club Delphi