我有很长的查询,我加入了我的主表,其中一个表基本上包含一个计划/包。但是,购买计划表中的一个选项是“位置”。如果位置为空,则基本上意味着“任何国家/地区”。
现在,如果计划包中的位置(与主表连接)为null,我仍然想要选择该行。但是,如果它不是null,我希望它是一个不同的特定值(例如'US'),基本上确保如果location为null,则不包括where子句。
希望足够清楚,并希望得到任何帮助。
答案 0 :(得分:3)
只需在WHERE
子句中添加空条件:
WHERE Location = 'US'
OR Location IS NULL
答案 1 :(得分:0)
您可以在WHERE子句中使用CASE WHEN:
Select * from tbl1 join tbl2 on tbl1.key = tbl2.key
where tbl1.location = CASE when tbl2.location
IS NOT NULL tbl2.location ELSE tbl1.location END
这样,如果表2中的位置不为空,它将检查表1中的位置,否则将设置tbl1.location = tbl1.location,它始终为true。
我希望我理解你真正想要的东西。