Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Parametro nulo en un procedimiento almacenado (https://www.clubdelphi.com/foros/showthread.php?t=41891)

Viky 28-03-2007 18:47:51

Parametro nulo en un procedimiento almacenado
 
Hola a todos:
Quiero preguntarles como hacer lo siguiente:
Tengo un procedimieto q recibe un parámetro, el cual algunas veces tiene un valor y otras veces puede ser nulo.
Lo que quiero es generar la misma consulta para ambos casos. Es decir no tener q escirbir la misma consulta pero sin el where cuando el parametro es nulo.
Ejemplo
Si el parametro es nulo:

select * from tabla

Si el parametro no es nulo:

select * from tabla where columna=parametro.

Como podria armar la consulta para q funcione en los dos casos??? pero sin poner la sentencia If en el procedimiento almacenado.

Muchas Gracias
Viky.

Viky 28-03-2007 18:57:28

Creo q la solucion seria:

select * from tabla where (paramtero is null) or (columna=parametro)

LordRiper 29-03-2007 21:16:12

Código SQL [-]
if (parametro is null) then
  select * from tabla
else
  select * from table where x= : parametro

poliburro 29-03-2007 22:45:22

Cita:

Empezado por Viky
Como podria armar la consulta para q funcione en los dos casos??? pero sin poner la sentencia If en el procedimiento almacenado.

Creo que no aplica.

Se me ocurre así :P (esto es una fumada jajajajaj)

Código SQL [-]

Declare
  @VVConsula As VarChar(100), --Almacena la consulta a ejecutar
  @VVCriterio As VarChar(50)    -- Almacena el criterio si es aplicable

  Set @VVCriterio = Case When @Parametro Is Null Then ' where x= ' + @Parametro Else ' ' End 

  Set @VVConsulta = 'select * from tabla ' + @VVCriterio

  Exec  (@VVConsulta)

:P insito es una fumada.


La franja horaria es GMT +2. Ahora son las 13:31:06.

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