oracle - 比较 Oracle PL SQL 中 2 个游标的输出
问题描述
我有 2 个游标,我想将作为一个游标的输出返回的字段与另一个也作为另一个游标的输出返回的字段进行比较。
下面是我的代码:
CREATE OR REPLACE PROCEDURE CHECK_STUDENT AS
CURSOR SCHOOL_REG IS
SELECT STUDENT_ID FROM SCHOOL WHERE CLASSROOM IN (1,2,3,4,5);
CURSOR CLASS_REG IS
SELECT STUDENT_ID, STUDENT_NAME FROM REGISTER WHERE CLASSROOM = 1;
FOR X IN CLASS_REG LOOP
IF X.STUDENT_ID <> SCHOOL_REG.STUDENT_ID THEN
DBMS_OUTPUT.PUT_LINE(X.STUDENT_ID || ' IS NOT REGISTERED IN SCHOOL');
END IF;
END LOOP;
CHECK_STUDENT END;
我不确定,如何比较这些字段。这些游标有复杂的查询,为了便于理解,我进行了简化。
提前感谢您的时间和帮助。
解决方案
您可以使用 MINUS 运算符
SELECT STUDENT_ID FROM REGISTER WHERE CLASSROOM = 1
minus
SELECT STUDENT_ID FROM SCHOOL WHERE CLASSROOM IN (1,2,3,4,5);
或检查 student_id 是否像这样不在学校
SELECT STUDENT_ID FROM REGISTER WHERE CLASSROOM = 1
and STUDENT_ID not in (SELECT STUDENT_ID FROM SCHOOL WHERE CLASSROOM IN (1,2,3,4,5)) ;
推荐阅读
- jenkins - 无法在设置时从 Jenkins 服务器安装任何插件。错误:读取超时
- javascript - Google 工作表到 Html Json 数据 - 单击时显示新框显示数据
- javascript - 带有 javascript 和 wordpress 错误的 Lottie 动画
- forms - 如何让 Autocrat 插件表单触发器与应用程序脚本表单一起使用
- http - PyCharm终端中HTTP响应数字的含义
- quarkus - Quarkus:构建期间的 IllegalArgumentException
- postgresql - Postgres earth 错误:域 earth 的值违反了检查约束“on_surface”
- java - Spring Boot:以编程方式禁用 PersistentBag 的获取
- wordpress - 从 WordPress 中的 WooCommerce 导航栏中删除“空”类别/子类别
- python - 迭代 Tensorfow 数据集总是返回一个不同排序的数组