这就是个查询语句,AND (ISNULL(@类型,'')='' OR 类型=@类型) AND (ISNULL(@平台,'')='' OR 平台=@平台) 这是查询条件我想再加个查询条件 就是这个F @状态 = '1' AND 状态 = 1 AND 标识 = 1 '; ELSE IF @状态 = '2' AND 状态 = 1 AND 标识 = 2 '; ELSE IF @状态 = '3' AND ( 状态 = -1 OR 状态 = 0 ) ';@状态是存储过程传入值,状态 和 标识 是表中的字段
你这样写没什么问题吧。 如果非要判断@状态为‘’的话 你可以这样 IF @状态 is null and 1=1
当@状态为空时,不做判断, 当@状态=1 时,增加判断条件 “状态 = 1 AND 标识 = 1” 当@状态=2 时,增加判断条件 “状态 = 1 AND 标识 = 2” 当@状态=3 时,增加判断条件 “状态 = -1 OR 状态 = 0” 这是个查询语句的 where 部分
你这个用存储过程来写的话 就是拼接字符串 用IF 判断是对的declare @sql nvarchar(max) SET @SQL='SELECT * FROM tb where xx and (ISNULL(@类型,'')='' OR 类型=@类型) and AND (ISNULL(@平台,'')='' OR 平台=@平台) IF @状态 is null SET @SQL=@SQL+' and 1=1' IF @状态 = '1' set @sql=@sql+'AND 状态 = 1 AND 标识 = 1 ' ELSE IF @状态 = '2' set @sql=@sql+'AND 状态 = 1 AND 标识 = 2 ' ELSE IF @状态 = '3' set @sql=@sql+'AND ( 状态 = -1 OR 状态 = 0 ) '
你这个用存储过程来写的话 就是拼接字符串 用IF 判断是对的declare @sql nvarchar(max) SET @SQL='SELECT * FROM tb where xx and (ISNULL(@类型,'')='' OR 类型=@类型) and AND (ISNULL(@平台,'')='' OR 平台=@平台)' IF @状态 is null SET @SQL=@SQL+' and 1=1' IF @状态 = '1' set @sql=@sql+'AND 状态 = 1 AND 标识 = 1 ' ELSE IF @状态 = '2' set @sql=@sql+'AND 状态 = 1 AND 标识 = 2 ' ELSE IF @状态 = '3' set @sql=@sql+'AND ( 状态 = -1 OR 状态 = 0 ) '
where a=isnull(@a,A)这样来判断,
AND (ISNULL(@平台,'')='' OR 平台=@平台)
这是查询条件我想再加个查询条件
就是这个F @状态 = '1'
AND 状态 = 1 AND 标识 = 1 ';
ELSE IF @状态 = '2'
AND 状态 = 1 AND 标识 = 2 ';
ELSE IF @状态 = '3'
AND ( 状态 = -1 OR 状态 = 0 ) ';@状态是存储过程传入值,状态 和 标识 是表中的字段
如果非要判断@状态为‘’的话
你可以这样
IF @状态 is null
and 1=1
当@状态为空时,不做判断,
当@状态=1 时,增加判断条件 “状态 = 1 AND 标识 = 1”
当@状态=2 时,增加判断条件 “状态 = 1 AND 标识 = 2”
当@状态=3 时,增加判断条件 “状态 = -1 OR 状态 = 0”
这是个查询语句的 where 部分
用IF 判断是对的declare @sql nvarchar(max)
SET @SQL='SELECT * FROM tb where xx and (ISNULL(@类型,'')='' OR 类型=@类型) and AND (ISNULL(@平台,'')='' OR 平台=@平台)
IF @状态 is null
SET @SQL=@SQL+' and 1=1'
IF @状态 = '1'
set @sql=@sql+'AND 状态 = 1 AND 标识 = 1 '
ELSE IF @状态 = '2'
set @sql=@sql+'AND 状态 = 1 AND 标识 = 2 '
ELSE IF @状态 = '3'
set @sql=@sql+'AND ( 状态 = -1 OR 状态 = 0 ) '
用IF 判断是对的declare @sql nvarchar(max)
SET @SQL='SELECT * FROM tb where xx and (ISNULL(@类型,'')='' OR 类型=@类型) and AND (ISNULL(@平台,'')='' OR 平台=@平台)'
IF @状态 is null
SET @SQL=@SQL+' and 1=1'
IF @状态 = '1'
set @sql=@sql+'AND 状态 = 1 AND 标识 = 1 '
ELSE IF @状态 = '2'
set @sql=@sql+'AND 状态 = 1 AND 标识 = 2 '
ELSE IF @状态 = '3'
set @sql=@sql+'AND ( 状态 = -1 OR 状态 = 0 ) '