1
我想將列值添加到我當前的insert/select語句中,但我不確定是否可以使用CASE WHEN子句或if我需要以另一種方式做到這一點。從另一個表插入一個基於另外兩個列值的差異的值
基本上我在我的主表中有一個電話號碼列。我需要從另一個表格中插入一個號碼,但另一個表格有兩個不同的電話號碼列,具體取決於呼叫類型。例如:
CALLINGPARTYNO | FINALLYCALLEDPARTYNO | CALLTYPE
------------------------------------------------
1234567890 0987654321 1
0987654321 1234567890 2
所以我需要做的是決定哪個號碼被放進我的phoneNumber的列於表1。如果呼叫類型是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做到這一點還是有另一種方式?尋找最理想的方式來做到這一點,以便我可以將它添加到更大的插入語句中。
完美,謝謝!因爲,我正在用其他選定的值連續做這件事,我可以在''''END'''語句中添加'''AS phoneNumber'''嗎? –
@TomN。是。 「CASE ... END」中的所有內容都是一個很長的表達式,您可以像使用其他列一樣對其應用一個名稱。 – rutter
@TomN。是的你可以。整個「case ... end」是一個單一的(儘管很複雜)的表達。請注意,添加這樣的別名只會幫助您更輕鬆地閱讀查詢。它沒有功能效果(假設你的查詢沒有一堆直接實際使用這個別名的其他部分)。 – Mureinik