在动态查询中,如果参数值为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,则结果集基于该条件。
发布于 2016-08-24 05:49:55
你只需要AND/OR操作符--这里不需要Dynamic query
SELECT *
FROM tblName
WHERE ( ptblnFlag = @blnFlag
AND @blnFlag = 0 )
OR @blnFlag = 1 变量名可能是错误的,但逻辑是相同的。
https://stackoverflow.com/questions/39115213
复制相似问题