gpt4 book ai didi

sql - count(*) 和 Count(field_name) 在oracle中返回差值输出

转载 作者:行者123 更新时间:2023-12-04 23:47:04 27 4
gpt4 key购买 nike

有两个简单的查询(因为太简单了,所以弄糊涂了):

第一个:

select count(*) 
from (select e.id as employee_id
from offic o
left join employee e
on o.employee_id = e.id)
where employee_id is null

第二个:

select count(employee_id) 
from (select e.id as employee_id
from offic o
left join employee e
on o.employee_id = e.id)
where employee_id is null

这两个查询之间的唯一区别是count(employee_id)count(*),其余完全相同,但结果不同。

当有一些空值时,第二个查询返回零。
有什么问题或其他我不知道的事情吗?

最佳答案

第二个查询计算具有非空 (NOT NULL) EMPLOYEE_ID 列值的行。第一个计算所有 行,不管EMPLOYEE_ID 中有什么。

[编辑:一个显示正在计算的内容的简单示例]

阅读下面的评论,好吧,其中一些似乎错误(或者我误解了作者的意图)所以 - 给你(基于 11.2.0.4.0)。

SQL> select * From a1_test;

COL1 COL2 COL3
---------- ---------- ----------
1 3
1 2
1 2 3
2 3
3

SQL>
SQL> select
2 count(*) cnt,
3 count(1) cnt_1,
4 count(2) cnt_2,
5 count(3) cnt_3,
6 --
7 count(col1) cnt_c1,
8 count(col2) cnt_c2,
9 count(col3) cnt_c3
10 from a1_test;

CNT CNT_1 CNT_2 CNT_3 CNT_C1 CNT_C2 CNT_C3
---------- ---------- ---------- ---------- ---------- ---------- ----------
5 5 5 5 3 3 4

关于sql - count(*) 和 Count(field_name) 在oracle中返回差值输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51925681/

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