我不想显示表的前 3 条记录,那么查询是什么


select * 
from tour 
where user_id start from 4;

一种选择是使用row_number()来实现此目的。

select * from (select *,row_number() over (order by user_id) rn from tour) t1
where rn > 3

使用以下代码。

select *
from tour
where user_id not in (select top 3 user_id from tour order by user_id)
order by user_id

使用可以使用限制

SELECT * FROM tour where user_id >3 LIMIT 3 OFFSET 0;

请尝试此查询以解决您的问题,此查询将显示除前 3 条记录之外的所有记录。

SELECT *
FROM tour
WHERE user_id >= 4
ORDER BY user_id OFFSET 3 ROWS;

在标准 SQL 中,您将使用fetch first但这只有在您还提供 ORDER BY 子句来定义行顺序时才有意义,例如:

select *
from tour
order by user_id
fetch first 3 rows only;

如果要从给定行开始(基于ORDER BY定义的排序顺序(,可以添加offset子句:

select *
from tour
order by user_id
offset 3
fetch next 5 rows only;

如果只想跳过第一行,可以省略fetch next部分:

select *
from tour
order by user_id
offset 3;

这两个语句都是标准的ANSI SQL,但并非所有DBMS产品都支持这一点(但您只用SQL标记了您的问题,它指的是ANSI SQL(

最新更新