sql - 我怎样才能只更新一个表的一些值,这些值不是一个接一个或按顺序用plsql中的新值?
问题描述
假设有一张员工表:
ID | PERSON_NAME | PERSON_telephonenumber |
---|---|---|
1 | 约翰 | 525323 |
2 | 缺口 | 624534 |
3 | 乔治 | 134355 |
4 | 账单 | 676346 |
我怎样才能只更新 nick 和 bill 的 person_telephonenumber 和我从 excel 文件中获得的新号码?而且不止两个值。请帮忙!
先感谢您
解决方案
第一步是将两列的Excel电子表格制作成两列的Oracle表;让我们打电话给他们OLD_NUMBER
和NEW_NUMBER
。我们称这张桌子为EXCEL_EXPORT
。另外,您没有告诉我们电话号码的数据类型;假设它是varchar2(15)
。
如何将数据从 Excel 导入 Oracle 是一个不同的问题;我假设你已经这样做了,所以你知道怎么做。(“如何”取决于您使用什么与数据库交互;例如,我使用 SQL Developer,它为这种过程提供了非常简单的工具。)
然后,作为重要步骤,在表中创建 OLD_NUMBER 主键:
alter table excel_export modify (old_number primary key);
这允许您通过连接更新现有表:
update
( select e.person_telephonenumber, ee.new_number
from employees e join excel_export ee
on e.person_telephonenumber = ee.old_number )
set person_telephonenumber = new_number
;
推荐阅读
- unreal-engine4 - 前向矢量是一个位偏移
- c# - 使用 C# 在 GridView 中隐藏编辑按钮
- windows - 试图为反汇编程序中的应用程序确定和更改“国家/地区/地区代码”
- mule - 在 mule 4 中读取和处理 excel 数据
- c# - 获取可发送通知的已安装 Windows 应用列表
- python - 如何在将列附加到自己的列表时从文本文件中删除第一行?
- react-hooks - 如何打开基于对象数组条件的映射中的 Material UI Popover
- symfony - Symfony 控制台命令给出“ini_set(): Headers already sent”
- sql - 如何计算 SQL 中的总数百分比?
- jquery - JQuery 的问题 - 触发(“更改”)到特定的 html 表格行/单元格,仅适用于第 0 行