sách gpt4 ai đã đi

sql - CHỌN * TỪ Nhân viên NƠI NULL LÀ NULL; CHỌN * TỪ nhân viên NƠI NULL = NULL;

In lại 作者:行者123 更新时间:2023-12-01 09:23:42 27 4
mua khóa gpt4 Nike

最近开始学习oracle和sql。
在学习的过程中,我遇到了几个问题,我的 friend 在接受采访时被问到这些问题。

LỰA CHỌN * 
FROM Employees
WHERE NULL IS NULL;

此查询产生雇员表中的所有行。
至于我所了解的Oracle是按列搜索数据的,那么,NULL,这里是不是被当作列名了?
当我说 Oracle 在列中搜索数据时,我说得对吗?
Oracle 怎么会给出这个查询中的所有行?
在 WHERE 子句中,条件的左侧不是必须是 COLUMN NAME 吗?
它不应该抛出错误吗?
LỰA CHỌN * 
FROM Employees
WHERE NULL = NULL;

没有选择行。

好吧,我知道我无法使用除 IS NULL 和 IS NOT NULL 之外的运算符来比较 NULL 值。
但是为什么它会产生结果而不是错误。
有人可以向我解释这一点。
Oracle 是否将 NULL 视为列以及空单元格?

1 Câu trả lời

一个 Ở đâu子句由条件表达式组成。不要求条件表达式由任一侧的列名组成。事实上,尽管通常一侧或两侧都是列,但包含以下内容的表达式并不少见:

  • 子查询
  • tham số
  • 常量
  • 标量函数

  • 一个常见的例子是:
    WHERE 1 = 1 AND . . .

    这是自动生成代码的标志。一些程序员更容易通过包含 AND 来组合条件。但该条款需要一个 anchor 。因此, 1 = 1 .

    的方式 WHERE从概念上讲,子句的工作原理是为 FROM 生成的每一行评估该子句。 .如果子句计算结果为 TRUE ,然后该行保留在结果集中(或用于进一步处理)。如果是 FALSEhoặc VÔ GIÁ TRỊ ,然后该行被过滤掉。

    所以, NULL IS NULL评估为 TRUE,因此保留所有行。 NULL = NULL计算结果为 NULL,因此不保留任何行。

    关于sql - SELECT * FROM Employees WHERE NULL IS NULL; SELECT * FROM 员工 WHERE NULL = NULL;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29068228/

    27 4 0
    Bài viết được đề xuất: gnuplot:用图像绘图,如何添加轮廓
    Bài viết được đề xuất: MinGW(未找到 x86_64-w64-mingw32-gcc)
    Bài viết được đề xuất: python - 如何检查用户是否点击了 Selenium 中的按钮?
    Bài viết được đề xuất: PHP Regex Word边界排除下划线_
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com