SELECT *
FROM TableName
WHERE (nn IS NULL OR dn like 'id=' + @nn + '%')
AND (user_id = @usrid)
AND (field1 IS NULL OR field1 = $wid)
对于第一个和第三个条件,我们在空校验和 OR 它符合实际标准。例如, field1=$wid 仅当 field1 是 not null (既然它无效,那么准则的第一部分- field1 IS NULL -评估为真。 我也改变了你的想法 $param$ 更常见的语法 @param ,但这可能会因您的sql风格而异。 最后,我不认为 case 语句在这里是合适的(正如一些评论员所建议的那样),因为您希望以不同的方式过滤不同的列,而不是基于critera(通常使用 CASE 声明)。
1条答案
按热度按时间byqmnocz1#
看起来你需要把这些融入你的生活
where
条件,对上面写的内容进行一些小的调整。对于第一个和第三个条件,我们在空校验和
OR
它符合实际标准。例如,field1=$wid
仅当field1
是not null
(既然它无效,那么准则的第一部分-field1 IS NULL
-评估为真。我也改变了你的想法
$param$
更常见的语法@param
,但这可能会因您的sql风格而异。最后,我不认为
case
语句在这里是合适的(正如一些评论员所建议的那样),因为您希望以不同的方式过滤不同的列,而不是基于critera(通常使用CASE
声明)。