SQL查询问题:如何筛选指定字段不全为空的行?
正确获取Id、country、adresse不全为Null的SQL查询
你当前的查询逻辑是要求Id、country、adresse**全部**不为Null,但你的需求是筛选这三个字段**不全为Null(至少有一个字段不为Null)**的行,两者逻辑完全相反,所以没有返回预期结果。
以下两种写法都可以满足你的需求:
写法一:直接判断至少一个字段非Null
SELECT * FROM tb1 WHERE Id IS NOT NULL OR country IS NOT NULL OR adresse IS NOT NULL;
写法二:排除三个字段全为Null的行
SELECT * FROM tb1 WHERE NOT (Id IS NULL AND country IS NULL AND adresse IS NULL);
这两种查询逻辑等价,都会返回你示例中的第1行(Id和country非Null)和第4行(Id非Null)。
内容的提问来源于stack exchange,提问作者tamo007
相关产品推荐
相关产品推荐

