我想删除表中的前3行和后3行。但是使用单一查询从表中删除数据。我正在使用oracle 10g。请给我oracle 10g的解决方案。
我的桌子是这样的:
SQL> SELECT * FROM EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 14 rows selected. I want output like this. target ------ 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20
提前感谢。
可以使用子查询检索前三行和后三行。顶级语句可以删除它们。你需要一些定义订单的东西,比如员工编号。
DELETE FROM EMP
WHERE EMPNO IN (
SELECT EMPNO
FROM (
SELECT EMPNO
FROM EMP
ORDER BY EMPNO ASC
)
WHERE ROWNUM <= 3
) OR EMPNO IN (
SELECT EMPNO
FROM (
SELECT EMPNO
FROM EMP
ORDER BY EMPNO DESC
)
WHERE ROWNUM <= 3
)
试试这个:
DELETE FROM YourTable
WHERE ID IN
(
SELECT TOP 3 ID FROM YourTable ORDER BY ID ASC
UNION
SELECT TOP 3 ID FROM YourTable ORDER BY ID DESC
)
这将根据ID从表中选择前3个和最后3个寄存器。但请确保在编码时没有人修改表,因为您可能会删除不想删除的寄存器。
假设排序是基于EMPNO
,那么您可以这样做:
delete from emp
where emp.empno in (select empno
from (select empno,
row_number() over (order by empno) as seqnum_asc,
row_number() over (order by empno desc) as seqnum_desc
from emp
) e
where seqnum_asc <= 3 or seqnum_sec <= 3
);
若要删除标签,在tag命令指定 -d选项执行。 $ git tag -d <tagname>
请求: 响应标头
我在Aptana3(命令)中添加了bundle-
问题内容: 删除字符串的前三个字符的最有效方法是什么? 例如: 问题答案: 只需使用子字符串:将返回
我有一个StringBuilder对象,它的值分别是称呼、姓名、姓氏、地址和电话号码,每一个都是单独的行。 因此,我完全需要从对象中删除前3行以获得地址和phone_no。 我用过,, 但它只是删除了第一行。我尝试在对象上迭代3次并运行api,但仍然只删除了第一行。 你能帮我一次删除这3行代码,而不增加代码的复杂性吗?
问题内容: 我需要删除字符串的前3个字母和字符串的后3个字母。我知道我可以使用substr()从某个字符开始,但是如果我需要剥离第一个字符和最后一个字符,我不确定是否可以实际使用它。有什么建议么? 问题答案: 将负值作为参数(第3个参数)传递给,例如: 所以这: 输出: