sql if in where

ddhy6vgd  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(347)

我想在逻辑下面写一个sql查询:

when nn not null then dn like 'id=$nn$%' 
when user_id = $usrid$
when field1 not null then field1= $wid;

我写这篇文章是为了搜刮。
我想比较三个输入,并将查询修改为不为null的当前输入。

byqmnocz

byqmnocz1#

看起来你需要把这些融入你的生活 where 条件,对上面写的内容进行一些小的调整。

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 仅当 field1not null (既然它无效,那么准则的第一部分- field1 IS NULL -评估为真。
我也改变了你的想法 $param$ 更常见的语法 @param ,但这可能会因您的sql风格而异。
最后,我不认为 case 语句在这里是合适的(正如一些评论员所建议的那样),因为您希望以不同的方式过滤不同的列,而不是基于critera(通常使用 CASE 声明)。

相关问题