oracle sql 从渠道用户表获取用户数据更新批量更新到当前系统的用户表,渠道用户表需要获取更新的数据有用户号,机构号,用户名称,用户状态,用户身份证,用户电话,用户级别,怎么写sql
时间: 2024-12-19 08:28:47 浏览: 4
在Oracle SQL中,批量更新渠道用户表(假设其名为channel_users)的数据到当前系统用户表(假设其名为system_users)可以使用`INSERT INTO SELECT`语句,如果只针对已存在的用户号,避免插入重复记录,可以添加`ON DUPLICATE KEY UPDATE`子句。这里是一个基本的SQL示例:
```sql
INSERT INTO system_users (
user_id,
institution_code,
user_name,
status,
id_number,
phone_number,
level
)
SELECT
user_id,
institution_code,
user_name,
status,
id_number,
phone_number,
level
FROM
channel_users
WHERE
user_id IN (SELECT DISTINCT user_id FROM system_users) -- 确保只更新系统中不存在的用户
ON DUPLICATE KEY UPDATE
institution_code = VALUES(institution_code),
user_name = VALUES(user_name),
status = VALUES(status),
id_number = VALUES(id_number),
phone_number = VALUES(phone_number),
level = VALUES(level);
```
这个查询首先从渠道用户表中选择需要更新的字段,并检查用户号是否已经在目标系统用户表中存在。如果存在,则仅更新对应的字段值。
阅读全文