比如现在有一个表tb1 有ID和PWD两个字段,SQL2008。ID   PWD
fd   456
gf   787
 
现在我不想按ID和PWD删除,而是按数据表的行号删除,如指定删除第2行就是删除gf 787这行
不要 DELETE FROM tb1 WHERE ID= 这样的要按目前数据表的实际存储位置的行号删除行。重点。ROWNUMBER()方法我也试过,但是它好像必须按某一实际列建立排序,不是我想要的.
在下新手,请问应该怎么做?先谢过回复的朋友。

解决方案 »

  1.   

    提示一下吧,row_number()可以这样:row_number() over(order by getdate())
      

  2.   

    非常感谢SQLCenter!over(order by getdate()) 刚试了一下,就是我想要的效果。这么晚,辛苦了 感谢!
      

  3.   

    初学貌似可以实现。。WITH CTE (ID,PWD,DuplicateCount)  
    AS  
    (  
    SELECT ID,PWD,
    ROW_NUMBER() OVER(ORDER BY ID) AS DuplicateCount  
    FROM tb1 
    )  
    DELETE  
    FROM CTE  
    WHERE DuplicateCount = 2 --删除第二行 
    GO