declare @sSQL VARCHAR(2000)
SET sSQL='Select top 20 ID
FROM Prospects
WHERE p.StatusID not in (-1,2,4,5,6,7,8,9,12,13,14)'
+CASE WHEN @state IS NULL THEN '' ELSE CHAR(10) + 'AND P.State = '+ CHAR(39)[email protected] +CHAR(39) end
上面的代码块不返回任何状态值,我想维护ISNULL功能。 原来的是有像这样的where子句 - 'p.State = IsNull(@State,p.State)'使用case语句删除我的SQL查询中的ISNULL's
这就是Microsoft SQL Server语法。你为什么要标记这个问题[tag:mysql]? – 2014-09-24 17:53:01
coalesce比isnull更普遍'p.State = coalesce(@state,p.state)'? – xQbert 2014-09-24 17:57:24