delete from aa where id not in (select max(id) from bb group by name)
不能运行而delete from aa where id in (select max(id) from bb group by name)
能运行请问什么原因啊 

解决方案 »

  1.   

    。。ROY哥说的对 是没结果集 我感觉
      

  2.   

    --建立測試數據
    DECLARE @T1 TABLE(ID INT,[NAME] VARCHAR(10))
    INSERT @T1 SELECT 1,'A'
    INSERT @T1 SELECT 1,'A'
    INSERT @T1 SELECT 2,'B'
    INSERT @T1 SELECT 2,'C'
    INSERT @T1 SELECT 3,NULL
    INSERT @T1 SELECT NULL,'D'
    INSERT @T1 SELECT NULL,NULL
    DECLARE @T2 TABLE(ID INT,[NAME] VARCHAR(10))
    INSERT @T2 SELECT 1,'A'
    INSERT @T2 SELECT 2,'E'
    INSERT @T2 SELECT 3,'F'
    SELECT DISTINCT ID FROM @T1 T 
    WHERE NOT EXISTS(SELECT 1 FROM @T2 WHERE ID=T.ID)
    /*
    ID
    -----------
    NULL
    */ 
    SELECT * FROM @T1 WHERE ID NOT IN(SELECT ID FROM @T2)
    /*
    ID          NAME
    ----------- ----------*/
    看這裡
    /*--sql 2000,not in是得不到上述结果的--空值表示值未知。空值不同于空白或零值。没有两个相等的空值。--比较两个空值或将空值与任何其他值相比均返回未知,这是因为每个空值均为未知。--使用IN或NOT IN比较后返回的所有空值都将返回UNKNOWN。--将空值与IN或NOT IN一起使用会产生意外结果。*/
      

  3.   

    sql 2000,not in  得不到上述结果吗