sql - 如何使用 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
推荐阅读
- java - 在为 com.ktech:xpira:jar:0.0.1-SNAPSHOT 构建有效模型时遇到了一些问题
- android - 通过 OTP 共享 App Hash 在应用安全方面是否有任何缺点
- javascript - 非 SPA 前端 - 即时交互 JS 元素的最佳实践
- java - 使用retrofit2获取响应主体的空数据?
- java - Spring条件yaml属性值
- android - android Pie中的firebase推送通知不显示图像图标
- xml - apache-camel 将批量消息放入 JMS
- scapy - 使用 scapy.sniff 获取 pcap 文件中的“以太网帧”的问题
- python-3.x - pyinstaller 生成一个 exe,但是当执行它时,我的程序的初始窗口显示为黑色,并在几秒钟后关闭
- apache-spark - 在被 Spark 读取后,获取 HDFS 上数据集的未压缩大小