Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-06-2008
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Question XOR en consulta SQL

Buenas, estoy haciendo unas consulta y en las condiciones necesito aplicar el operador lógico XOR pero no me lo acepta. Estoy en Firebird 1.5, quisiera saber la manera de poner este operador, gracias.

Código SQL [-]
Select f.cod_pago, o.nro_obra, o.nombre_obra as Obra,
c.nombre_consig as Proveedor, f.fch_pago as Fecha,
lpad(f.pto_vta_pago,4,'0') || ' - ' || lpad(f.nro_pago,8,'0') as nrorecibo,
f.monto_pago as Monto,
CASE WHEN f.cod_consig IS NULL THEN 'GASTOS VARIOS'
ELSE c.tipo_consig END AS tipo
From (pagos f LEFT OUTER JOIN consignatarios c ON c.cod_consig = f.cod_consig), obras o
Where o.nro_obra = f.nro_obra
and o.nombre_obra LIKE :nombreObra
and (c.nombre_consig LIKE '%'  || :nombreProveedor || '%' OR /*aqui debería ser XOR y no OR*/ c.nombre_consig is null)
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #2  
Antiguo 13-06-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Buenas santiago14,

"The exclusive OR (which evaluates to true if any single condition is true but false if all conditions are true) is not supported."
Pág. 399. The Firebird Book.

Entonces, como en FB no se tiene el operador XOR, podría realizar la operación equivalente:

Código SQL [-]
and (
  (c.nombre_consig LIKE '%'||:nombreProveedor||'%' AND c.nombre_consig IS NOT NULL) OR
  (c.nombre_consig NOT LIKE '%'||:nombreProveedor||'%' AND c.nombre_consig IS NULL)
)

O también, si lo prefiere, puede construir/descargar una UDF para ello.

--
"constructive mind, destructive thoughts"

Última edición por TOPX fecha: 13-06-2008 a las 23:22:34.
Responder Con Cita
  #3  
Antiguo 13-06-2008
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Thumbs up Xor...

Muchas gracias compañero.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 02-10-2007 00:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 16:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 20:01:47


La franja horaria es GMT +2. Ahora son las 11:14:01.


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