Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   If o Case en cláusula WHERE (https://www.clubdelphi.com/foros/showthread.php?t=82617)

Jere_84 25-03-2013 13:32:21

If o Case en cláusula WHERE
 
Hola gente del club se me ha presentado que necesito en la clausula WHERE poder tener dos alternativas algo así seria:

Declare @id_cliente char(1)

SELECT Campo1, Campo2
FROM Tabla
WHERE if @id_cliente = 'A' Then
Tabla.Campo1 is null
else
Tabla.Campo1 not is null

Digamos que necesito traer o los NULL o los que NO son NULL de un mismo campo.... de acuerdo a lo que seleccione el usuario de un combo yo pasaría 'A' o pasaría otro valor... Alguien sabe si esto es posible utilizo SQL Server.

Saludos y gracias.

Casimiro Notevi 25-03-2013 13:44:16

Amigo, después de más de 150 mensajes y todavía olvidas los tags al código ;)
Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

duilioisola 25-03-2013 17:23:26

Yo lo haría así:

Código SQL [-]
SELECT Campo1, Campo2
FROM Tabla
WHERE 
(@id_cliente = 'A' and Tabla.Campo1 is null) or
(@id_cliente <> 'A' and Tabla.Campo1 is not null)

No se si la sintaxis para distinto es '<>' o '!=' o algo diferente.

ecfisa 25-03-2013 21:22:30

Hola Jere_84.
Cita:

Empezado por Jere_84 (Mensaje 457565)
...
Digamos que necesito traer o los NULL o los que NO son NULL de un mismo campo....

No sé si estoy errado, pero de lo dicho infiero que es traer el conjunto de todos los campos que cumplan la condición ID_USUARIO = 'A', ya que que "CAMPO1" solo puede ser NULL o no serlo.

Luego:
Cita:

de acuerdo a lo que seleccione el usuario de un combo yo pasaría 'A' o pasaría otro valor...
Entonces la sentencia SQL la vería así:
Código SQL [-]
SELECT CAMPO1, CAMPO2
FROM TABLA
WHERE ID_CLIENTE = :PCLIE
Pero como dije anteriormente tal vez haya malinterpretado tu mensaje.

Saludos.:)

ginkaku 26-03-2013 04:34:35

Hola Jere_84
Creo que lo que preguntabas era: ¿Puedo hacer una consulta sql con un parámetro enviado desde el form?. Yo te entendí asi y si este es el caso la respuesta es si. Mira yo uso ADOQuery por simple gusto seria algo asi:

Código Delphi [-]
ADOQuery1->Active=false;
ADOQuery1->SQL->Text="Select * from Tabla1 where tabla1.campo= "+Edit1->Text+";";
ADOQuery1->Active=true;

Perdona la sintaxis pero no tengo instalado delphi solo c++. La idea es esa hago una consulta y le envio a la clausula where lo que este en mi edit o en un combobox en tu caso. Recuerda desactivar y activar la consulta para que esta se actualice. Espero haberte entendido

Casimiro Notevi 26-03-2013 13:50:51

Es mejor, por seguridad, usar parámetros, como ha indicado ecfisa.

Jere_84 26-03-2013 22:15:16

Gracias a todos por las respuestas han sido de gran utilidad.. :D

Saludos.


La franja horaria es GMT +2. Ahora son las 02:04:36.

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