Sql 循环表以将where条件输入到delete查询中

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

我正在运行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]
  ,[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不够精通,无法根据您的线索进行指导;你能详细说明一下吗。