update A SET A.NAME=
(
select B.NAME from #tmpTB2 B where B.ID=A.ID
)
FROM #tmpTB3 A
insert into #tmpTB3
select * from #tmpTB2 B
where B.ID not in(select ID from #tmpTB3)以上为:存在的更新,不存在的插入
以下为 批量更新某个标识字段:
UPDATE A SET A.Provider_IsActive=
(
SELECT CASE WHEN
(
SELECT 1 FROM
(
SELECT DISTINCT Provider_System_Provider_Id
FROM YOUR_DB_NAME.[dbo].[YOUR_TABLE_NAME2] P
WHERE p.data_source = 'ika' and soft_delete_flag = 'n' and Provider_Active_Flag = 'y'
) B WHERE B.Provider_System_Provider_Id = left(A.External_provider_id,7)
) IS NULL THEN 0 ELSE 1 END AS Provider_IsActive
)
FROM YOUR_DB_NAME.[dbo].[YOUR_TABLE_NAME1] A
-- SELECT COUNT(*) FROM YOUR_DB_NAME.[dbo].[YOUR_TABLE_NAME1] A WHERE Provider_IsActive=0
本文介绍了一种使用SQL进行数据处理的方法,包括如何实现记录的批量更新与不存在时的插入操作。此外还展示了如何通过复杂的子查询来更新某个标识字段的状态,确保数据的准确性与一致性。
&spm=1001.2101.3001.5002&articleId=7952028&d=1&t=3&u=8d175737fb624f72af88e7c1331473f7)
4689

被折叠的 条评论
为什么被折叠?



