根据其他两个列值的差异从另一个 table 插入一个值
Inserting a value from another table based on the difference of two other column values
我正在尝试将列值添加到我当前的 insert/select 语句中,但我不确定我是否可以使用 CASE WHEN 子句或者我是否需要以其他方式执行此操作。
基本上我的主 table 中有一个 phone 数字列。我需要从另一个 table 中插入一个数字,但另一个 table 有 2 个不同的 phone 数字列,具体取决于呼叫类型。例如:
CALLINGPARTYNO | FINALLYCALLEDPARTYNO | CALLTYPE
------------------------------------------------
1234567890 0987654321 1
0987654321 1234567890 2
所以我需要做的是指示将哪个号码放入 table 中的 phoneNumber 列 1. 如果呼叫类型为 1,我想插入来自 FINALLYCALLLEDPARTYNO 的号码但是如果呼叫类型是 2,我想插入来自 CALLINGPARTYNO 的号码。
伪代码,如果有帮助的话:
Insert into table1(phoneNumber)
SELECT case when /*if calltype = 1, then select FINALLYCALLEDPARTYNO*/
ELSE /*if calltype=2 then select CALLINGPARTYNO */ as phoneNumber
from table2;
有没有办法用 CASE 做到这一点,或者有其他方法吗?寻找执行此操作的最理想方法,以便我可以将其添加到更大的插入语句中。
您可以在 insert-select 语句中使用任何可以在 select 语句中使用的语法结构:
INSERT INTO table1(phoneNumber)
SELECT CASE calltype WHEN 1 THEN finallycalledpartyno
WHEN 2 THEN callingpartyno
END
FROM table2
我正在尝试将列值添加到我当前的 insert/select 语句中,但我不确定我是否可以使用 CASE WHEN 子句或者我是否需要以其他方式执行此操作。
基本上我的主 table 中有一个 phone 数字列。我需要从另一个 table 中插入一个数字,但另一个 table 有 2 个不同的 phone 数字列,具体取决于呼叫类型。例如:
CALLINGPARTYNO | FINALLYCALLEDPARTYNO | CALLTYPE
------------------------------------------------
1234567890 0987654321 1
0987654321 1234567890 2
所以我需要做的是指示将哪个号码放入 table 中的 phoneNumber 列 1. 如果呼叫类型为 1,我想插入来自 FINALLYCALLLEDPARTYNO 的号码但是如果呼叫类型是 2,我想插入来自 CALLINGPARTYNO 的号码。
伪代码,如果有帮助的话:
Insert into table1(phoneNumber)
SELECT case when /*if calltype = 1, then select FINALLYCALLEDPARTYNO*/
ELSE /*if calltype=2 then select CALLINGPARTYNO */ as phoneNumber
from table2;
有没有办法用 CASE 做到这一点,或者有其他方法吗?寻找执行此操作的最理想方法,以便我可以将其添加到更大的插入语句中。
您可以在 insert-select 语句中使用任何可以在 select 语句中使用的语法结构:
INSERT INTO table1(phoneNumber)
SELECT CASE calltype WHEN 1 THEN finallycalledpartyno
WHEN 2 THEN callingpartyno
END
FROM table2