根据参数值SQL将列添加到条件

时间:2016-08-24 05:39:52

标签: sql-server

我正在进行动态查询,如果参数值为false,我需要在查询中添加一列。

// SQL:

SET @FilterExp = 'SELECT * from tblName where ptblnFlag = '+Convert(varchar(2),@blnFlag)+') as tbl where 1=1'+ COALESCE(NULLIF( CONVERT(varchar(8000), @FilterExp),''), '')

在上面的查询中,我需要检查@blnFlag是否为false,然后可以在where条件中添加列。如果是真的,就不必在那里。

如果条件为false,它应返回所有值,如果为true,则结果集基于条件。

1 个答案:

答案 0 :(得分:1)

您只需要AND/OR运算符,此处不需要Dynamic query

SELECT *
FROM   tblName
WHERE  ( ptblnFlag = @blnFlag
         AND @blnFlag = 0 )
        OR @blnFlag = 1 

变量名称可能出错,但逻辑相同