【发布时间】:2015-10-07 20:59:41
【问题描述】:
我正在尝试使用 IF/Else 语句创建 Oracle Sql 查询
IF EXISTS
(
SELECT *
FROM baninst1.an_employee_position
WHERE baninst1.an_employee_position.person_uid = 593791
AND baninst1.an_employee_position.position_end_date IS NULL) THEN
SELECT *
FROM baninst1.an_employee_position
WHERE baninst1.an_employee_position.person_uid = 593791
AND (
baninst1.an_employee_position.position_end_date IS NULL
OR baninst1.an_employee_position.position_end_date > SYSDATE)
AND baninst1.an_employee_position.effective_start_date <= SYSDATE;ELSE
SELECT *
FROM (
SELECT *
FROM baninst1.an_employee_position
WHERE baninst1.an_employee_position.person_uid = 593791 )
WHERE ROWNUM = 1;END IF;
但是,当我运行它时收到“未知命令”错误。没有更多错误信息
【问题讨论】:
-
你到底想达到什么目的?
-
我想知道员工是否活跃,如果他们不活跃,员工最后担任的职位。此表包含员工担任的每个职位的记录。当 position_end_date 为空时,这就是员工的当前职位。如果 position_end_date 不为空,则该员工已被终止,但为了获得最后一个职位,我必须按 Effective_start_date 排序并选择第一个。
-
Oracle SQL 没有 IF ELSE,它有 CASE 和 DECODE。 PLSQL 有 IF ELSE 和 SWITCH 语句
标签: sql oracle syntax conditional