我有一个游标,它包含一个查询以根据某些问题逐个计算计数。我必须放置一些标志以执行查询 假设-如果User_flag为'Y',我想基于列进行计算 其他 我需要整个表计数以及几列,而无需按组。
我只是想将条件放在光标内。
我已经编写了查询来计算count,但是我无法设置条件-
CURSOR EMP_detail SELECT NULL t_name,
NULL dep_name,
NULL emp_name,
COUNT(1) cnt
FROM emp_system emps,
WHERE
AND emps.emp_id = 34167
AND TRUNC(SYSDATE) <= TRUNC(valid_end)
GROUP BY NULL
UNION
SELECT NULL t_name,
NULL dep_name,
emp_name emp_name,
COUNT(1) cnt
FROM emp_system emps,
WHERE emps.emp_id = 34167
AND TRUNC(SYSDATE) <= TRUNC(valid_end)
GROUP BY emp_name
CURSOR EMP_detail
IF User_flag ='Y' THEN
SELECT NULL t_name,
NULL dep_name,
NULL emp_name,
COUNT(1) cnt
FROM emp_system emps,
WHERE
AND emps.emp_id = 34167
AND TRUNC(SYSDATE) <= TRUNC(valid_end)
GROUP BY NULL
ELSE
UNION
SELECT NULL t_name,
NULL dep_name,
emp_name emp_name,
COUNT(1) cnt
FROM emp_system emps,
WHERE emps.emp_id = 34167
AND TRUNC(SYSDATE) <= TRUNC(valid_end)
GROUP BY emp_name
我需要执行上述功能。如何在游标本身中实现此功能。
答案 0 :(得分:2)
既然您似乎已经在使用PLSQL,为什么不在那里解决呢?
if user_flag='Y' then
open your_cursor for select .. (query for when flag=Y)
else
open your_cursor for select ... (query for when flag !=Y)
end if;