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