sqlsever初学者

sqlsever,怎么删除一个表中的第900行,可以where好几个么,因为他这一行的某一列不具备唯一性,可不可以同时指定多个条件,然后再delete

当然可以呀

你原本的SQL SERVER字段贴图上来看看

OFFSET 899 ROWS FETCH NEXT 1 ROWS ONLY 不就可以获取到低900行了么

答案参考ChatGPT Plus版,整理汇总。希望能帮助你解决问题
在 SQL Server 中,可以使用 DELETE 语句删除表中的指定行。你可以通过 WHERE 子句指定多个条件,并根据这些条件删除特定的行。

以下是一个示例,演示如何删除一个表中的第 900 行,并同时指定多个条件:

DELETE FROM YourTable
WHERE PrimaryKeyColumn IN (
    SELECT PrimaryKeyColumn
    FROM (
        SELECT TOP 1 PrimaryKeyColumn
        FROM (
            SELECT TOP 900 PrimaryKeyColumn
            FROM YourTable
            ORDER BY PrimaryKeyColumn ASC
        ) AS SubQuery
        ORDER BY PrimaryKeyColumn DESC
    ) AS SubQuery2
)
AND OtherColumn = 'SomeValue';

请注意,上述示例假设存在一个名为 YourTable 的表,其中包含一个主键列 PrimaryKeyColumn。该示例使用子查询选择第 900 行的主键值,然后在外部 DELETE 语句中将其作为条件。同时,还添加了其他条件 OtherColumn = 'SomeValue',以满足你同时指定多个条件的需求。

请根据实际情况修改表名、主键列名和其他条件来适应你的数据表结构和需求。请确保在执行删除操作前先备份重要的数据,以防止意外删除。

找到900行的id,直接删除,删除多个的话用in语法

你可以先备份一下数据表,然后根据你的需要删除900行,如果有问题也可以快速恢复。

可以,两种方法
一 如果要删除得数据量不大,可以在数据库中直接手动删除
二 数据量较大时,执行删除语句

DELETE FROM 表名
WHERE 多个筛选条件可以都写在里面;
删错了也不怕,可以回滚一下
 

多个条件就是这样的

DELETE FROM T 
WHERE id = 900 
AND name = 'some_name'
AND age = 30