Sql 如何在游标内放置条件查询?
我有一个游标,其中包含一个查询,用于根据某个分组问题计算计数。我必须设置一些标志来执行查询 假设-如果User_标志为“Y”,我希望根据group by列计算计数 其他的 我需要整个表计数和几个列,不需要分组 我只是想把条件放在游标内 我已经编写了计算计数的查询,但我无法设置条件-Sql 如何在游标内放置条件查询?,sql,oracle,plsql,Sql,Oracle,Plsql,我有一个游标,其中包含一个查询,用于根据某个分组问题计算计数。我必须设置一些标志来执行查询 假设-如果User_标志为“Y”,我希望根据group by列计算计数 其他的 我需要整个表计数和几个列,不需要分组 我只是想把条件放在游标内 我已经编写了计算计数的查询,但我无法设置条件- CURSOR EMP_detail SELECT NULL t_name, NULL dep_name, NULL emp_name, 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
光标EMP\u detail选择空t\u name,
部门名称为空,
空emp_名称,
计数(1)cnt
从emp_系统emps,
哪里
emps.emp_id=34167
而TRUNC(SYSDATE)既然您似乎已经在使用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;
既然您似乎已经在使用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;