2016-10-17 43 views
0

我想在SQL过程 使用动态过滤器,这样如何在sql过程中使用动态过滤器?

选择从表*如果@Filter

我可以写这样的还是被指出错误使用方法 ,因为我想删除我必须使用此语法在申请和使用程序中选择。

+0

你需要动态查询 –

+0

是的,怎么能写个程序与此条件??? – user3568937

+0

你有没有尝试在你的程序中添加参数? – fable

回答

0
CREATE PROCEDURE spProcedurName 
@Filter datatype 
AS 
BEGIN 
    SELECT * 
    FROM Table 
    WHERE columnName= @Filter 

END 

你可以这样说。

+0

我更好的方式,就像这样 – user3568937

0

@查询= '
SELECT * FROM表' + @Filter

EXEC @Query

0
CREATE PROCEDURE SP_DynamicFilter 
(
    -- Optional Filters for Dynamic Search 
    @COLUMN1  INT = NULL, 
    @COLUMN2  NVARCHAR(50) = NULL, 
    @COLUMN3  NVARCHAR(50) = NULL, 
    @COLUMN4  NVARCHAR(50) = NULL 
) 
AS 
BEGIN 
    SELECT * 
    FROM TableName 
    WHERE 
     (@COLUMN1 IS NULL OR Column1 = @COLUMN1) 
    AND (@COLUMN2 IS NULL OR Column2 LIKE '%' + @COLUMN2 + '%') 
    AND (@COLUMN3 IS NULL OR Column3 LIKE '%' + @COLUMN3 + '%') 
    AND (@COLUMN4 IS NULL OR Column4 LIKE '%' + @COLUMN4 + '%') 
END