【发布时间】:2017-10-06 18:51:35
【问题描述】:
我需要从第 475 行到第 948 行删除,因为它们与第 1-474 行重复。我猜应该是差不多的,还是还有更多?
DELETE FROM dbo.industry WHERE row_number between 475 and 948
【问题讨论】:
-
您是否有主键,例如数据库中的 ID?如果你这样做了,你可以很容易地通过 ID 删除。
-
row_number是您表中的一列吗?该列中的值 475-948 是您要删除的行吗? -
@TimWilcox:嗯,添加一列很容易,但这真的是你想要的吗?你如何定义“行号”?您如何识别要删除的记录?
-
@TimWilcox:嗯,要记住的重要一点是,您所称的“行号”完全取决于您的排序方式 i> 数据。 SQL 本身并不能真正保证这一点。它通常按主键排序,但不一定必须如此。记录本身没有“行号”。
-
@TimWilcox:我认为下面的一些答案会有所帮助,但首先您必须能够确定要删除的内容。这些行不会按任何默认值排序,如果 PK 不同,它们也不会技术上重复。在技术、逻辑层面,在查看数据时,您能否定义一些表达式来标识要删除的行?或者,相反,要保留的行?如果是前者,那就是你的
DELETE声明。如果是后者,那是您在下面 Belgo 答案开头的SELECT声明。
标签: ssms sql-delete