2

このクエリを実行したい

select *
from  table
order asc
limit N;

ここで、Nは行の総数から10を引いたものです。

SELECT COUNT(*) FROM (SELECT * FROM table)

合計が189として返されるので、この場合、制限を179にします。

4

2 に答える 2

0

最も効率的なものかどうかはわかりませんが、主キーとしてフィールドが 1 つしかない場合、これは機能するはずです。

select *
from T1
where
    T1.id not in (
        select top(10) id
        from T1
        order by id desc
    )
order by
    id;

注文ごとに最後の行を取得し、キーで除外できます。

編集:

さらに良いことに、not in の代わりに、左外部結合を使用できます。

select 
    T1.*
from T1
left outer join ( select top(10) id from Enums_Tables order by id desc ) as T2
on
    T1.id = T2.id
where
    T2.id is null;
于 2012-11-22T16:20:43.710 に答える