Sql 从表2中选择进入表,其中列位于(子查询)

Sql 从表2中选择进入表,其中列位于(子查询),sql,sql-server,select,select-into,Sql,Sql Server,Select,Select Into,在这里你可以看到我想要的:) 找到重复项并将其复制到另一个表中。 但使用此代码,我得到一个错误: 选择时,只能在选择列表中指定一个表达式 子查询不随EXISTS一起引入 用于查找重复项的SELECT语句工作得非常好。但是,我有一个问题,就是使用select Into只选择重复项并将其复制到新表中 我希望你能理解我想要什么,任何人都能帮我:) //编辑: Im使用SQL Server 2008 R2您可以使用: SELECT .... ColumnNames ... INTO [FOUND_DUP

在这里你可以看到我想要的:)

找到重复项并将其复制到另一个表中。 但使用此代码,我得到一个错误:

选择时,只能在选择列表中指定一个表达式 子查询不随EXISTS一起引入

用于查找重复项的SELECT语句工作得非常好。但是,我有一个问题,就是使用select Into只选择重复项并将其复制到新表中

我希望你能理解我想要什么,任何人都能帮我:)

//编辑: Im使用SQL Server 2008 R2

您可以使用:

SELECT .... ColumnNames ...
INTO [FOUND_DUPLICATES] 
FROM [FIND_DUPLICATES] AS FD
WHERE FD.[Contract No] IN 
    (SELECT [Contract No],
            [Vehicle Identity number (VIN)],
            COUNT(*) AS Anzahl 
    FROM FIND_DUPLICATES
    GROUP BY 
            [Contract No],
            [Vehicle Identity number (VIN)]
    HAVING COUNT(*) >1)
或使用相关子查询:

SELECT  .... ColumnNames ...

INTO [FOUND_DUPLICATES] 
FROM [FIND_DUPLICATES] AS FD
WHERE FD.[Contract No] IN
(
  SELECT 
    [Contract No]
  FROM FIND_DUPLICATES
  GROUP BY 
     [Contract No],
     [Vehicle Identity number (VIN)]
  HAVING COUNT(*) >1
)

添加另一个子查询应该有效吗

SELECT .... ColumnNames ...

INTO [FOUND_DUPLICATES] 
FROM [FIND_DUPLICATES] AS FD
WHERE EXISTS 
(
    SELECT 1
    FROM FIND_DUPLICATES FD1
    WHERE FD.[Contract No] = FD1.[Contract No]
    GROUP BY 
        FD1.[Contract No],
        FD1.[Vehicle Identity number (VIN)]
    HAVING COUNT(*) >1
)

六羟甲基三聚氰胺六甲醚。。。我的缩进有点错误,但这应该有助于可读性。
Select  .... ColumnNames ...

INTO [FOUND_DUPLICATES] 
    FROM [FIND_DUPLICATES]
    AS FD
    where FD.[Contract No] 
       IN (  Select [Contract No] from (Select 
        [Contract No],
        [Vehicle Identity number (VIN)],
        COUNT(*) AS Anzahl 
    from FIND_DUPLICATES
    group by 
        [Contract No],
        [Vehicle Identity number (VIN)]
    having count(*) >1)x)
Select  .... ColumnNames ...

INTO [FOUND_DUPLICATES] 
    FROM [FIND_DUPLICATES]
    AS FD
    where FD.[Contract No] 
       IN (
       select [Contract No] from (Select --inner sub query 
        [Contract No],
        [Vehicle Identity number (VIN)],
        COUNT(*) AS Anzahl 
    from FIND_DUPLICATES
    group by 
        [Contract No],
        [Vehicle Identity number (VIN)]
    having count(*) >1) )