可否在SQL的Where条件中能使用IF判断吗.?
写一个存储过程,有一个@countryID参数,可能为0,当等于0的时候
在SQL语句的结尾就不需要对 CountryID进行判断.
在SQL的Where条件中能使用IF判断吗.?
大概类似
SELECT * FROM TB1
INNER JOIN TB2
ON....
WHERE ..........
AND m.style_name LIKE '%' + @style_name + '%'
if(@country_ID<>0)
{
AND AR_Country_Master.country_id=@country_ID
}
order by a.Inspection_Date desc
这种逻辑,可以实现吗?
[解决办法]
给个例子你自己改,你修改@a的值就看到效果了
DECLARE @sql VARCHAR(max)
SET @sql=''
DECLARE @a INT
SET @a=0
SELECT @sql=@sql+'select * from sys.sysprocesses where spid>50 '+CASE WHEN @a>0 THEN ' and kpid>3000' ELSE + '' END
PRINT (@sql)