繁体   English   中英

ORACLE SQL-将新变量插入表

[英]ORACLE SQL- Insert new variable to table

我有一个存储的过程,我试图用它来更新表,并且在如何根据其他列查询和联接的结果将变量设置为不同的值时遇到麻烦。

例:

INSERT INTO CUSTOMERS(
CUST_ID,
CUST_signup_info)

SELECT CUST_ID,
CUST_signup_info

FROM (SELECT DISTINCT(c.CUST_ID, CUST_signup_info) FROM CUSTOMERS c 
inner join CUSTOMER_INFO ci on
ci.CUST_ID = c.CUST_ID)

我需要帮助的是说CUST_signup_info有3种可能的值(步入式,网络式,电话式),我需要将返回值分别更新为CUSTOMERS表1、2、3。 我需要创建一个变量以某种方式执行此操作吗?

我需要类似的东西

if c.CUST_ID = 'walk-in' THEN c.CUST_ID= 1
else if c.CUST_ID = 'web' THEN c.CUST_ID= 2
else if c.CUST_ID = 'phone' THEN c.CUST_ID= 3

以及如何/在哪里将这种逻辑实现到INSERT语句中

不知道您到底想达到什么目的。 CUST_ID是否应成为CUSTOMERS表的主键? 如果是这样,那您为什么需要更新呢? 让它从序列中自动填充。 另外,由于您在两边都使用CUST_ID,所以您的最后一段代码(如果则为逻辑)是不正确的。

对我来说,您似乎需要一个注册类型的查找表,然后在CUSTOMER_INFO表中有一列使用ID链接回该表。 所以像这样:

CUSTOMER_SIGNUPS table
  ID             TYPE
1             Walk In
2             Web
3             Phone

CUSTOMER_INFO table
  TYPE_ID -> this links back to the CUSTOMERS_SIGNUP table.

也许我确实错过了您要实现的目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM