sql - 如何在一个查询SQL中更新一列中的多行
问题描述
我有一张包含以下客户订单数据的表格。我正在尝试清理显示客户所处状态的一列。该列混合了完整的州名称及其缩写,我只想拥有缩写。以下是我想出的要点,但我不确定出了什么问题。我基本上必须为每个州都这样做。
UPDATE customer_orders
SET state = CASE
WHEN 'Colorado' THEN 'CO'
WHEN 'Wisconsin' THEN 'WI'
END
WHERE state IN ('Colorado', 'Wisconsin');
解决方案
VALUES
您可以使用状态名称和代码加入表构造函数。
像这样:
UPDATE c
SET state = s.code
FROM customer_orders AS c
JOIN (VALUES
('CO','Colorado),
('WI','Wisconsin'),
-- .....etc
) AS s(code,name) ON s.name = c.state;
推荐阅读
- wix - 仅在卸载期间而不是在主要升级期间运行 Wix 自定义操作
- android - 为什么我在 google maps android 中得到 0.0?
- ios - 使用 vmware boxer 应用从另一个应用发送邮件
- javascript - 在 Bootstrap 4 的滑块导航中,如何将“活动”类添加到当前选项卡?
- web-services - JAX-RS Web 服务
- python - 如何将 WiFi 连接到非 W RPi
- angular - 尝试更改 textarea 的值时出现 DOMException
- oracle - 如何为一周的交货生成单个 AR 发票
- react-native - 如何在不重新捆绑资产的情况下重新编译本机应用程序
- android - 无法在 AndroidManifest.xml 中添加 Intent