Stored Procedures (SQL Server)
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
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
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)
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)