是否可以从表中删除"第一个"记录SQL Server,而不使用任何WHERE条件且不使用游标?
Qua*_*noi 135
WITH q AS
(
SELECT TOP 1 *
FROM mytable
/* You may want to add ORDER BY here */
)
DELETE
FROM q
Run Code Online (Sandbox Code Playgroud)
注意
DELETE TOP (1)
FROM mytable
Run Code Online (Sandbox Code Playgroud)
也会起作用,但是,正如文件中所述:
在引用的行
TOP与使用的表达INSERT,UPDATE或DELETE不按任何顺序排列.
因此,最好使用WITH和ORDER BY子句,它可以让您更准确地指定您认为哪一行是第一行.
sou*_*rge 41
取决于你的DBMS(人们似乎不知道现在是什么)
-- MYSql:
DELETE FROM table LIMIT 1;
-- Postgres:
DELETE FROM table LIMIT 1;
-- MSSql:
DELETE TOP(1) FROM table;
-- Oracle:
DELETE FROM table WHERE ROWNUM = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152875 次 |
| 最近记录: |