Sql 循环表以将where条件输入到delete查询中
我正在运行SQL Server 2012 我有两张桌子: 表1[dbo].FilestoUpdate-此文件记录要测试的重复项:Sql 循环表以将where条件输入到delete查询中,sql,sql-server-2012,Sql,Sql Server 2012,我正在运行SQL Server 2012 我有两张桌子: 表1[dbo].FilestoUpdate-此文件记录要测试的重复项: [ID] [A_number] 1 A069467 2 A078594 3 A085473 etc etc 表2包含我的所有数据: 我使用以下查询删除表2中的重复记录: ;WITH Vals AS (SELECT [A_number] ,[Date] ,[ZONE] ,[MG
[ID] [A_number]
1 A069467
2 A078594
3 A085473
etc etc
表2包含我的所有数据:
我使用以下查询删除表2中的重复记录:
;WITH Vals AS (SELECT [A_number]
,[Date]
,[ZONE]
,[MGA_N]
,[MGA_E]
,[MI_SQL_Y]
,[MI_SQL_X]
,[RL]
,[SHEET_100K]
,[SHEET_250K]
,[Hole_ID]
,[Sample_Group]
,[Sample_No]
,[Mesh_Size]
,[Sample_Type]
,[DEPTH]
,[Au_ppb]
,[Au_limit]
,[Au_meth]
,[Ag_ppm]
,[Ag_limit]
,[Ag_meth]
,[As_ppm]
,[As_limit]
,[As_meth]
,[Cu_ppm]
,[Cu_limit]
,[Cu_meth]
,[Ni_ppm]
,[Ni_limit]
,[Ni_meth]
,[Co_ppm]
,[Co_limit]
,[Co_meth]
,[Pb_ppm]
,[Pb_limit]
,[Pb_meth]
,[Zn_ppm]
,[Zn_limit]
,[Zn_meth]
,[Lithology]
,[Comments]
,[CompositeID]
,[SourcefileName]
,[Coordinate_ID]
,[Priority]
,[myStyle]
,[MI_PRINX]
,therow = row_number() OVER(PARTITION BY [Coordinate_ID] ORDER BY [Coordinate_ID] DESC)
FROM [DRILLHOLES_Export].[dbo].[WAMEX_Soil_Live]
WHERE [A_number] = 'A069467'
)
DELETE FROM VALS
WHERE therow > 1;
我想在表1中循环(FilestoUpate
)并使用每个a_编号运行查询,例如'A069467'然后'a0785594'然后'A085473等等
这可能吗
问候,
彼得是的。SQL对数据集进行操作,因此您必须使用要删除的行构建一组数据:
DELETE table_to_delete
FROM [DRILLHOLES_Export].[dbo].[WAMEX_Soil_Live] table_to_delete
INNER JOIN [DRILLHOLES_Export].[dbo].[FilestoUpate] table_with_keys
ON table_to_delete.[A_number]=table_with_keys.[A_number]
您还必须提供有关要从何处删除数据的信息:table_to_delete我对SQL不够精通,无法根据您的线索进行指导;你能详细说明一下吗。