union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;

问题背景:

一个同事问我,union all 不是不去重吗?为什么我昨天查还是对的,今天查询就错了;

union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;_第1张图片

然后我说查询条件不对,他认为是因为union all对查询结果为NULL去重了;

问题论点:union all对查询结果为NULL会去重吗?

验证猜想:union all对查询结果为NULL不会去重

1.首先我拿一个为null的字段进行union all ;

union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;_第2张图片

union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;_第3张图片

2.得出验证结果是union all对查询结果为NULL不会去重

问题疑惑:

union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;_第4张图片

问题证明:对于查询条件查询结果为null 的union all查询,结果为NULL会去重;

1.验证猜想:对于查询条件的查询结果为null 的union all对查询结果为NULL会去重;

union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;_第5张图片

 

union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;_第6张图片

问题总结:union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;

你可能感兴趣的:(SQL,union,all不去重)