如何使用Insert Into将字段分为两部分?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Insert Into将字段分为两部分?相关的知识,希望对你有一定的参考价值。
我正在尝试使用Insert Into将一个字段分成两个字段。这是我的代码。
INSERT INTO Pricing (ID_GLOBAL,
PRICING_SOURCE,
PX_BID,
PX_ASK,
PX_HIGH,
PX_LOW,
PX_OPEN,
CASE WHEN W.id_cd = 'ISN' THEN ID_ISN = W.id_number
ELSE ID_SED = W.id_number
END)
Select C.asset_id,
C.price_source,
C.bid_price,
C.ask_price,
C.high,
C.low,
C.open_price,
W.id_cd,
W.id_number
From RRS As C
INNER JOIN ERS As W
ON C.asset_id = W.asset_id
在我将CASE放进去之前,一切都很好。现在,我收到此错误:
Incorrect syntax near 'CASE'.
答案
无法创建要插入的条件列列表。您已经指定了可能具有值的所有列,然后有条件地填充它们。因此,您将需要在SELECT语句中使用两个CASE语句来适当地填充这两列。
尝试以下操作(注意:我实际上没有运行此程序,所以请告诉我是否存在任何较小的语法错误)。
INSERT INTO Pricing (ID_GLOBAL,
PRICING_SOURCE,
PX_BID,
PX_ASK,
PX_HIGH,
PX_LOW,
PX_OPEN,
ID_ISN,
ID_SED)
Select C.asset_id,
C.price_source,
C.bid_price,
C.ask_price,
C.high,
C.low,
C.open_price,
W.id_cd,
CASE WHEN W.id_cd = 'ISN' THEN W.id_number ELSE NULL END,
CASE WHEN W.id_cd != 'ISN' THEN W.id_number ELSE NULL END
From RRS As C
INNER JOIN ERS As W
ON C.asset_id = W.asset_id
以上是关于如何使用Insert Into将字段分为两部分?的主要内容,如果未能解决你的问题,请参考以下文章
SELECT INTO 和 INSERT INTO SELECT比较
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句