gpt4 book ai didi

sql - DISTINCT 是否排除空值

转载 作者:行者123 更新时间:2023-12-04 14:25:00 26 4
gpt4 key购买 nike

使用 COUNT (DISTINCT fieldA) 时,是否排除计算 fieldA 中的 NULL 值

最佳答案

你的标题和叙述之间有两个问题。

DISTINCT 不会消除(排除)空值

然而

聚合函数忽略空值

正如其他人所提到的,如果您想计算所有非空 DISTINCT 值,请使用您提到的代码。

SELECT COUNT(DISTINCT columnName)

如果您想将所有空值计算为另一个值,您可以使用 2 种方法中的一种。

1) 使用 COALESCE() 消除数据集中未表示的值的空值。例如。
 SELECT COUNT(DISTINCT COALESCE(columnName,'|||||||||'))

2)更确定的方式使用类似于戈登展示的条件聚合:

显示如何 distinct 不会消除空值:
CREATE TABLE DistinctTest (Col INT)
INSERT INTO DistinctTest (Col) VALUES (NULL),(1),(2),(3),(NULL)

SELECT DISTINCT *
FROM
DistinctTest

关于sql - DISTINCT 是否排除空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com