4

選択したデータから最後の行を削除するにはどうすればよいですか? データを並べ替えて並べ替える必要があります。ただし、最後の行は使用されません。多分誰かが例を知っていますか?

4

4 に答える 4

6

あなたはこれを試すことができます

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
于 2012-12-14T08:24:44.543 に答える
1

あなたが似ている場合は、この問題を参照してくださいMySQL: How to select all rows from a table EXCEPT EXCEPT there and see this code there

SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE)

ここで「ID != (SELECT MAX(ID) FROM TABLE)」この部分は、シリアルで最大の番号を持つ最後の行を切り取ります (このために、auto_increment になる整数フィールド (ID) を宣言する必要があります。そのフィールドはレコードの最後の行の最大値を MAX(ID) で返します)

于 2012-12-14T08:53:47.797 に答える
1

特定の行数を返すクエリがある場合、COUNT(*) OVER () を使用して、返される行数を調べることができます。最後の行を削除するには、クエリをサブクエリにプッシュし、ROWNUM でフィルター処理する必要があります ...

select ...
from   (select   count(*) over () total_rows,
                 ...
        from     ...
        where    ...
        order by ...)
where   rownum < total_rows
于 2012-12-15T21:48:44.507 に答える
-1

このようにしてみてください

select * from table
where rowid<>(select max(rowid) from table);

また

select * from table
minus
select * from table where rownum = (select count(*) from table)
于 2012-12-14T08:23:27.973 に答える