【发布时间】:2021-11-23 12:20:35
【问题描述】:
如果A表中存在客户ID,则在B表中插入订单。 如果表 A 中不存在客户 ID,则将客户 ID 插入表 A 中,然后在表 B 中订购。 我一直在尝试使用 if/else 和 merge 来实现这一点,但一直遇到 无效的 sql 语句。
IF EXISTS (SELECT CustomerID FROM Customer_T WHERE CustomerID = 18)
Insert into Order_T
values(79,18,to_date('09/28/2021','mm/dd/yyyy'),to_date('10/01/2021','mm/dd/yyyy'),1,3)
ELSE
insert INTO Customer_T VALUES (18,'Capitol Industries Ltd', '999 Fifth Avenue', 'New York', 'NY','10015')
insert into Order_T values (79,18,to_date('09/28/2021','mm/dd/yyyy'),to_date('10/01/2021','mm/dd/yyyy'),1,3)
END IF;
【问题讨论】:
-
我认为你需要在每条语句后加一个分号。插入是语句和 if-else-end if;是一种说法。所以,只要放 ;在每次插入之后。
-
那也没用。同样的错误
-
这个要求看起来很奇怪,因为如果你已经有一些 id,那么它应该来自某个东西。但是
customer表中怎么能没有呢? -
所以基本上客户必须存在才能创建订单。因此,它检查客户是否存在,对客户表不做任何事情,而是使用该客户 ID 创建一个新订单。但如果客户不存在,首先创建一个新客户,然后使用该客户 ID 创建一个新订单
标签: sql oracle oracle-apex