gpt4 book ai didi

sql - 查询结果包含空字段,即使我在字段上指定了 "is not null"

转载 作者:行者123 更新时间:2023-12-02 22:12:49 24 4
gpt4 key购买 nike

我有两个表,我正在对它们执行 LEFT JOIN 以获取第一个表中的所有记录,而不管第二个表中是否存在匹配项。

我发现有时 NULL 会返回到连接列。我放入了一个 where 子句来过滤掉连接列中具有 NULL 的记录,但我仍然看到这些记录。

为了过滤掉连接列中具有 NULL 的记录,我需要在下面的 SQL 中更改什么?

select
folders.FolderId,
folders.lastUpdated,
folder.FolderName,
folder.FolderParentID
from dbo.xsdl_Folder folder
left join dbo.Folders folders
on folder.FolderID = folders.FolderID
where folder.FolderID is not null;

最佳答案

如果您的 FolderId 返回 NULL 并且您打算从 Folder 表中检索所有数据并且仅从 Folders 表中检索那些匹配的记录,那么看起来您需要更改查询以改为使用 folder.FolderId SELECT 语句中的 folders.FolderId:

select
folder.FolderId,
folders.lastUpdated,
folder.FolderName,
folder.FolderParentID
from dbo.xsdl_Folder folder
left join dbo.Folders folders
on folder.FolderID = folders.FolderID

或者,如果您要从结果中移除所有 NULL 值,则不要使用 LEFT JOIN,而应使用 INNER JOIN:

select
folders.FolderId,
folders.lastUpdated,
folder.FolderName,
folder.FolderParentID
from dbo.xsdl_Folder folder
inner join dbo.Folders folders
on folder.FolderID = folders.FolderID

LEFT JOIN 的目的是从第二个表(在本例中为 dbo.Folders)返回 NULL 值。

关于sql - 查询结果包含空字段,即使我在字段上指定了 "is not null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965525/

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