条件

时间:2015-11-06 10:03:54

标签: c# mysql sql sql-server sql-server-2008

我有一个mr.Name可能是nulll的SQL查询,所以如果它是null我不想考虑它。我该怎么写这个查询,如果它包含数据,如果不像

那样在where中考虑它
where da.LastRefreshTime >= xx and da.LastRefreshTime <= xx and 
        da.M = z  

这是我的SQL查询:

SELECT distinct ... 
FROM ...
where da.LastRefreshTime >= xx and da.LastRefreshTime <= xx and 
    da.M = z  and mr.Name in ('FRANCE','ITALY')

3 个答案:

答案 0 :(得分:1)

使用IS NOT NULL

WHERE mr.Name IS NOT NULL;
  

IS NOT NULL条件用于测试NOT NULL值   在SELECT,INSERT,UPDATE或DELETE

答案 1 :(得分:0)

SELECT distinct ... 
FROM ...
where da.LastRefreshTime >= xx and da.LastRefreshTime <= xx and
    da.M = z  and ((mr.Name in ('FRANCE','ITALY') and mr.Name is not NULL) or 1 = 1)

我认为这就是你想要的,尝试并告诉我这是否能解决你的问题

答案 2 :(得分:0)

您似乎想要返回Name为France,Italy或NULL的行。因此,只需添加一个OR子句和括号: -

SELECT DISTINCT ... 
FROM ...
WHERE da.LastRefreshTime >= xx 
AND da.LastRefreshTime <= xx 
AND da.M = z  
AND (mr.Name IN ('FRANCE','ITALY')
OR mr.Name IS NULL)