我可以将表中的列与游标类型的变量进行比较吗



我声明了一个游标来迭代我的员工ID。

DECLARE
r_employee employee.id%type;
c_employee CURSOR FOR
SELECT
distinct employee_id
FROM
employee;

然后我用这个光标在另一个表"中选择字段;分支";其中employee_;分支";表与光标匹配。

SELECT
COUNT(*),
employee_id
FROM
branch
WHERE
branch.employee_id = r_employee 
GROUP BY
employee_id

出现以下错误:

错误:列"r_员工"不存在。

上面的代码在一个循环中,该循环在每个循环中从c_employee获取r_employees。知道怎么解决这个问题吗?(使用postgresql(

不,你不能。必须引用光标内的列,而不是引用光标本身。游标包含查询的结果,无论查询返回的是单列还是多列。在这种情况下,r_employee的声明本质上是一个包含单个变量的记录。但是,单列或多列必须引用游标中的列名,或将游标提取到的记录。所以

SELECT
COUNT(*),
employee_id
FROM
branch
WHERE
branch.employee_id = r_employee.id   --<< reference the variable within the record >>
GROUP BY
employee_id; 

最新更新