如何根据需要在where子句中为不同的条件编写sql查询?

时间:2015-04-01 11:44:05

标签: sql-server

我必须将不同的参数作为代码后面的列传递,因此我为15列编写了15个gridview绑定方法,所以为了避免这种情况,我想在查询中设置。例如,如果我的列1然后选择此where子句,如果第2列然后选择这个where子句。那么如何写这样的?

1 个答案:

答案 0 :(得分:0)

以下是如何创建和运行动态查询的示例

CREATE PROCEDURE sp_search
    @param1         int = NULL,
    @param2         int = NULL
AS
BEGIN    
DECLARE @query_string nvarchar(4000);
SET @query_string = 'SELECT * FROM TABLE_NAME WHERE 1 = 1 ';

        IF(@param1 IS NOT NULL)
        BEGIN
            SET @query_string = @query_string + ' AND columnName1 = ' + CAST(@param1 AS VARCHAR);
        END

        IF(@param2 IS NOT NULL)
        BEGIN
            SET @query_string = @query_string + ' AND columnName2 = ' + CAST(@param2 AS VARCHAR);
        END

        EXEC sys.sp_executesql @query_string;
END