我有一个像这样的桌子,上面有很多ID。
在表中我有ID。每个ID都有一个值和该值的对应日期。我需要分别获取
的ID因此,在查询中,如果我通过1作为参数,将显示结果表Id(101,&104),如果我通过2作为参数,将一起显示Id(102&103)
答案 0 :(得分:0)
条件:
- 如果value不为null,则其对应的日期也应不为null
- 如果value为null,则无需检查其对应日期
可以写为:
(value1 IS NULL OR date1 IS NOT NULL)
为每对创建条件并使用AND
进行组合:
SELECT *
FROM table_with_lots_of_ids
WHERE
(value1 IS NULL OR date1 IS NOT NULL) AND
(value2 IS NULL OR date2 IS NOT NULL) AND
(value3 IS NULL OR date3 IS NOT NULL) AND
(value4 IS NULL OR date4 IS NOT NULL)
上面将选择行号101和104。将NOT (...)
内的where子句包装起来,得到行号102和103。