如何从选定数据中删除最后一行。我需要对数据进行排序并对其进行排序。但最后一行从未使用过。也许有人知道一个例子吗?
答案 0 :(得分:5)
你可以试试这个
with t as (select 1 field from dual
union all
select 2 from dual)
select * from (
select count(*) over(order by field desc) cnt, t.* from t
)
where cnt != rownum
答案 1 :(得分:1)
如果您的问题类似MySQL: How to select all rows from a table EXCEPT the last one,请查看此问题,并在此处查看此代码
SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE)
这里“ID!=(SELECT MAX(ID)FROM TABLE)”这部分切断了序列中编号最大的最后一行(为此,你必须声明一个整数字段(ID),它将是auto_increment。该字段将通过MAX(ID))给出最后一行记录的最大值
答案 2 :(得分:1)
鉴于您有一些返回特定行数的查询,您可以使用COUNT(*)OVER()来查找它返回的行数。要消除最后一行,您必须将查询推送到子查询并过滤ROWNUM ...
select ...
from (select count(*) over () total_rows,
...
from ...
where ...
order by ...)
where rownum < total_rows
答案 3 :(得分:-1)
试试这个
select * from table
where rowid<>(select max(rowid) from table);
或
select * from table
minus
select * from table where rownum = (select count(*) from table)