Stored Procedures (SQL Server)

Javier
23 de Diciembre del 2004
Hola, tengo un problema que no se si tiene una solución simple pero espero que sí y que alguien me pueda ayudar. El problema es que tengo un stored procedure con una consulta de SELECT y necesito pasarle como parámetro toda la condición (que la tengo como un string en una variable de mi sistema) para aplicar filtros sobre los datos.

Ejemplo:

CREATE Procedure viewClientes
@Condicion varchar(200)
AS
SELECT * FROM CLIENTES
WHERE @Condicion
Return

Donde a @Condicion le voy a pasar como valor un string como los siguientes:

- Edad > 20
- Nombre LIKE 'Car%" AND Sexo = 'Femenino'
- FechaIngreso BETWEEN #1/1/2004# AND #31/12/2004#

O cualquier condición que al usuario se le ocurra


No sé si se entiende lo que quiero hacer, pero el sql no lo entiende, me da un error al poner "WHERE @Condicion". Hay alguna forma de hacerlo?

Muchas gracias.

Javier

gabrielsr2004
23 de Diciembre del 2004
lo que pasa es que una variable no es una condición
pruebalo de la siguiente manera


CREATE Procedure viewClientes
@Condicion varchar(200)
AS
Declare
@SqlText Varchar(500)

select @Condicion

Select @SqlText = " SELECT * FROM CLIENTES "
Select @SqlText = @SqlText + " WHERE " + ltrim(rtrim(@Condicion))
exec (@SqlText)