gpt4 book ai didi

sql - 什么时候查询/子查询返回 NULL,什么时候根本没有值?

转载 作者:行者123 更新时间:2023-12-02 07:14:03 27 4
gpt4 key购买 nike

  • 如果查询/子查询没有找到任何匹配的行,那么它要么返回 NULL 要么根本没有值,因此甚至不是 NULL 值。基于
    查询/子查询返回 NULL 的条件是什么,什么时候不返回任何结果,甚至不返回 NULL 值?
  • 当没有时,标量子查询是否总是返回 NULL
    找到匹配的行?我假设最外层标量查询也返回
    如果未找到行,则为 NULL?
  • SELECT FirstName, LastName, YEAR(BirthDate)
    FROM Persons
    WHERE YEAR(BirthDate) IN (SELECT YearReleased FROM Albums);
  • 如果子查询没有找到结果,就是外层的 WHERE 子句
    查询翻译成 WHERE YEAR(BirthDate) IN (null); ?
  • 如果 WHERE 子句被翻译成 WHERE YEAR(BirthDate) IN();相反,这不应该是一个错误条件,因为 YEAR(BirthDate) 怎么可能值(value)比什么都没有?
  • 最佳答案

    子查询只会返回 NULLYearReleasedNULL ,否则会有一个空记录集,使其成为 IN ()你提到的情况。

    区分两者非常重要,因为它们意味着完全不同的事物。 NULL表示有东西要处理 SELECT ed,尽管可以这么说,该值表明“缺乏值(value)”。空记录集表示没有与指定条件匹配的要选择的内容。

    编辑 :更新以显示示例结果

    alt text

    前两个查询只是为了显示两个表中的内容。第三个查询是您的查询,第四个查询仅显示如果您用 NULL 替换子查询,它会产生等效的结果(无行)。 .最后一个查询只是为了表明子查询本身只返回一个大列表 NULL s。

    关于sql - 什么时候查询/子查询返回 NULL,什么时候根本没有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723806/

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