错误的预测SQL Server查询结果

罗宾·范·阿尔斯特

我正在为SQL Server考试而学习,但我得到的这些问题我回答错了,但是我不明白为什么正确的答案是正确的,以及如何获得这些答案。

nr   naam  aantal  chef
1    Anouk  14  2
2    Hans  14  NULL
3    Ali  13  5
4    Kees  12  5
5    Ben  3  2

nr   soort  stad  chef
1    cursus  DenHaag  2
2    cursus  Amsterdam  NULL
3    congres  NewYork  5
4    lezing  Utrecht  5

nr   werknemer  reis  aantal  datum  bedrag
01   1           4  8  17-04-2013  420,56
02   3           3  5  05-04-2013  825,80
03   1           1  5  10-04-2013  140,00
04   null        2  2  10-04-2013  156,75
05   4           4  8  17-04-2013  328,90
06   5           3  5  05-04-2013  560,45

这两个问题是:

一种。

SELECT naam
FROM werknemer
WHERE nr NOT IN (SELECT werknemer
            FROM declaratie);

b。

SELECT naam, COUNT(*)
FROM werknemer w LEFT OUTER JOIN declaratie d ON w.nr = d.werknemer
GROUP BY naam;

我的答案是:

a: Hans
b: naam   count(*)
Anouk   2
Hans    0
Ali     1
Kees    1
Ben     1

但是正确的答案是:

a: none 
b: naam   count(*)
Anouk   2
Hans    1
Ali     1
Kees    1
Ben     1

有人可以向我解释我可能错过的事情吗?

strickt01

a)是因为执行任何类型的操作都会NOT IN (1,NULL,3,4,5)返回NULL结果集,因为SQL无法说出任何给定值是否不相等NULL,因此有效地返回了“我不知道”。在Stack Overflow上对此有很好的解释

b)错误的原因是您LEFT JOIN来自werknemer因此,werknemer将返回的所有行,包括HansCOUNT(*)将返回关于个别行的数量,使得Hans返回1.是你要COUNT(d.werknemer)那么Hans将是0,因为所有declaratie的列会NULLHans因为JOIN谓词将无法实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误的预测SQL Server查询结果

来自分类Dev

异常的SQL Server查询结果

来自分类Dev

查询 SQL Server 的总和结果

来自分类Dev

SQL查询结果错误

来自分类Dev

SQL Server查询结果为INSERT

来自分类Dev

SQL Server查询未给出正确的结果

来自分类Dev

SQL Server转置查询结果

来自分类Dev

转置 SQL Server 查询结果

来自分类Dev

SQL查询返回错误结果

来自分类Dev

SQL查询之间的错误结果

来自分类Dev

SQL查询结果中的错误

来自分类Dev

SQL查询返回错误的结果

来自分类Dev

VBA SQL查询结果错误

来自分类Dev

SQL Server:查询错误

来自分类Dev

SQL查询结果相乘并显示错误结果

来自分类Dev

SQL查询在结果上添加行-SQL Server 2012

来自分类Dev

SQL Server 查询结果到 SQL 转储

来自分类Dev

如何从查询结果中删除“ NULL” SQL Server 2008

来自分类Dev

查询未返回正确的结果-SQL Server Xquery

来自分类Dev

在查询结果中显示表名称;SQL Server 2008

来自分类Dev

Microsoft SQL Server Management Studio-查询结果为文本

来自分类Dev

SQL Server:将结果从一对多查询拼合

来自分类Dev

使用查询结果更新现有表SQL Server 2012

来自分类Dev

SQL Server 2008-查询以分数格式获取结果

来自分类Dev

SQL SERVER:将查询结果导出为JSON对象

来自分类Dev

将SUM添加到SQL Server查询结果

来自分类Dev

为什么此SQL Server查询未返回预期结果?

来自分类Dev

结果类似于SQL Server 2016中的Oracle查询

来自分类Dev

无法使SQL Server子查询选择所需的结果