根据另外两个列值的差异从另一个表中插入值

时间:2017-08-31 16:10:11

标签: mysql sql case insert-select

我正在尝试将列值添加到当前的insert / select语句中,但我不确定是否可以使用CASE WHEN子句,或者我是否需要以其他方式执行此操作。

基本上我的主表中有一个电话号码栏。我需要从另一个表中插入一个数字,但另一个表有2个不同的电话号码列,具体取决于呼叫类型。例如:

CALLINGPARTYNO | FINALLYCALLEDPARTYNO | CALLTYPE
------------------------------------------------
1234567890        0987654321              1
0987654321        1234567890              2

所以我需要做的是指示将哪个数字放入表1中的phoneNumber列。如果call type为1,我想插入FINALLYCALLEDPARTYNO中的数字,但如果调用类型为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做到这一点还是有另一种方式?寻找最理想的方法,以便我可以将它添加到更大的插入语句中。

1 个答案:

答案 0 :(得分:2)

您可以使用insert-select语句中的select语句中可以使用的任何语法结构:

<div class="row">
  <span class="label">Label:</span>
  <span class="value">{{session.value}}</span>
</div>