Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ORACLE SQL-向表中插入新变量_Sql_Stored Procedures_Join_Oracle11g_Sql Update - Fatal编程技术网

ORACLE SQL-向表中插入新变量

ORACLE SQL-向表中插入新变量,sql,stored-procedures,join,oracle11g,sql-update,Sql,Stored Procedures,Join,Oracle11g,Sql Update,我有一个存储过程,我正试图用它更新一个表,但在如何根据其他列查询和联接的结果将变量设置为不同的值方面遇到了问题 例如: 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.CU

我有一个存储过程,我正试图用它更新一个表,但在如何根据其他列查询和联接的结果将变量设置为不同的值方面遇到了问题

例如:

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有三个可能的值(walk-in、web、phone),我需要将返回值分别更新到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表的主键吗?如果是这样的话,为什么需要更新这个?让它从序列中自动填充。 另外,您的最后一段代码(if-then逻辑)不正确,因为您在两侧都使用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.

也许我正错过了你想要实现的目标。

我可以建议你研究一下案例陈述吗?我会研究一下这个或案例陈述。我想两者都可以。非常感谢。