PDA

Ver la Versión Completa : Ejecutar o no una linea sql


Cristhor1982
29-05-2013, 16:49:07
Amigos

Tengo una duda, es posible ejecutar o no ejecutar una linea de una consulta sql

Por ejemplo si tengo un proc almacenado

linea 1 -----select * from tabla

linea 2 -----where campo=@variable1

Aquí por ejemplo preguntar si @variable2 es lo que yo que quiero ejecute o no la linea 3

linea 3 -----and campo1=@variable2

linea 4 -----and campo2=@variable2


se entiende?...:S

Me imagino que con un if...

Algo asi como
If @variable = 'dato' then
linea 3 ----- campo=@variable
else
linea 4 ----- campo=@variable
end

Saludos

maeyanes
29-05-2013, 17:10:53
Hola...

Hasta donde tengo entendido, no es posible eso que quieres hacer, pero lo podrías realizar mediante un procedimiento almacenado.


Saludos...

Lepe
29-05-2013, 17:40:56
Dentro del proc. almacenado sí, pero ¿de qué hablamos? Firebird, Sql Server, ... la sintaxis es tal y como has puesto en el ejemplo. Habrá que buscar según tu motor.

Saludos

Cristhor1982
29-05-2013, 17:46:10
Hola Lepe

Mmmm, es en SQL SERVER 2000

Lo que acabo de poner no funciona llevo un rato tratando de hacer algo y no pasa nada

Saludos

Dentro del proc. almacenado sí, pero ¿de qué hablamos? Firebird, Sql Server, ... la sintaxis es tal y como has puesto en el ejemplo. Habrá que buscar según tu motor.

Saludos

Cristhor1982
29-05-2013, 18:50:28
Me explico un poco mejor,

Desde delphi una variable puede tomar 3 valores (0-1-2)

osea podria venir asi

@variable=0 //@variable=1// @variable:2


cuando es 0 y 1

quiero que se ejecute esta consulta
if @variable <>2
begin
select *
from tabla
where campo = @variable1
and variable = @variable
end
else
begin
select *
from tabla
where campo = @variable1
end

encuentro que repetir la consulta completa esta mal, lo que necesitaria es que pregunte en la consulta misma, algo asi

select *
from tabla
where campo = @variable1
if @variable <>3
begin
and variable = @variable
end
else
no ejecuta la linea AND Variable =@variable
begin
end


me gustaria saber si hay alguna opcion o algo cercano a eso

SALUDOS

Hola Lepe

Mmmm, es en SQL SERVER 2000

Lo que acabo de poner no funciona llevo un rato tratando de hacer algo y no pasa nada

Saludos

Cristhor1982
29-05-2013, 21:10:02
Lo que utilice

and ((@variable = 2) OR (@variable <> 2 And campo = @variable))


Saludos