① sql如何获取上一条..下一条..首尾记录...
获得上一条的id
:select
max(id)as
id
from
[表]
where
id<"[你的要查的id]"
order
by
[.....]
获得下一条的id
:select
min(id)as
id
from
[表]
where
id>"[你的要查的id]"
order
by
[.....]
很笨的办法但是很直观·
不知道你是什么数据库··根据不同的数据库有很多不同的写法··
比如
mysql
中的
limit
或者
mssql
中的
top
写法多了去啦··呵呵··上面举个例子罢了··希望对你有帮助
② 关于查询sql中数据上一条记录和下一条记录的sql语句......
可用row_number来解决。
如student表
id name create_date
1 张三 2015-07-01
2 李四 2015-06-01
3 王五 2015-08-01
4 赵六 2015-04-01
如,要查找张三的create_date前和后各一条数据。
withtas
(selectstudent.*,row_number()over(orderbycreate_date)rnfromstudent)
select*fromstudentwherern=(selectt.rn+1fromtwheret.name='张三')
unionall
select*fromstudentwherern=(selectt.rn-1fromtwheret.name='张三')
结果应是:
id name create_date
2 李四 2015-06-01
3 王五 2015-08-01
③ sql如何判断前一条数据大于后一条数据
用这个试试
select * from (SELECT ROW_NUMBER() over (order by tdate ) as row,*
FROM 数据表) T where row<id
只支持2000以上版本
④ SQL2008数据库 查询指定记录的前一条记录
select * from TABLENAME where ID =
(select max(ID) from TABLENAME where ID < &&a)
⑤ SQL 如何返回前一条数据 数据如下
你这个结果出错了吧
ORDER BY MAIN, ID怎么会是
127
129
122呢?后面ID是升序哦
而且如果有
1 1 3
1 1 4
的话,你要那个呢?
另外,还需要知道你是什么数据库,ORACLE的话,这题目太容易了
这个可以
SELECT cid, mainid, id
FROM TAB t
WHERE NOT EXISTS (SELECT 1
FROM TAB
WHERE MAINID < (SELECT MAINID FROM TAB WHERE ID = 7)
AND mainId < t.mainId)
AND NOT EXISTS (SELECT 1 FROM tab WHERE mainId = t.mainId AND id > t.id)
⑥ SQL语句如何取前10条,10-30条记录
常用几种数据库,取前10条记录的sql语句写法。
access:
select top (10) * from table1 where 1=1
db2:
select column from table where 1=1 fetch first 10 rows only
mysql:
select * from table1 where 1=1 limit 10
sql server:
读取前10条:select top (10) * from table1 where 1=1
读取后10条:select top (10) * from table1 order by id desc
oracle:
select * from table1 where rownum<=10
取10-30条的记录:
select top 20 * from 表名 where id not in(select top 10 id from 表名)
(6)sql前一条扩展阅读:
使用SQL从表中取记录。
SQL的主要功能之一是实现数据库查询。如果你熟悉Internet 引擎,那么你已经熟悉查询了。你使用查询来取得满足特定条件的信息。
多数Internet 引擎允许逻辑查询。在逻辑查询中,你可以包括特殊的运算符如AND、OR和NOT,你使用这些运算符来选择特定的记录。
如果需要扩展查询的结果,可以使用逻辑操作符OR。例如,如果执行一个搜索,搜索所有的其描述中包含Active Sever Pages OR SQL的站点,收到的列表中将包括所有其描述中同时包含两个表达式或其中任何一个表达式的站点。
如果想从搜索结果中排除特定的站点,可以使用NOT。例如,查询“Active Sever Pages ”AND NOT “SQL”将返回一个列表,列表中的站点包含Active Sever Pages,但不包含SQL。当必须排除特定的记录时,可以使用NOT。
用SQL执行的查询与用Internet搜索引擎执行的搜索非常相似。 当执行一个SQL查询时,通过使用包括逻辑运算符的查询条件,你可以得到一个记录列表。此时查询结果是来自一个或多个表。
⑦ 如何用sql语句 取某字段的前一条数据和后一条数据之间的差值
很简单呀,可以看看datediff数据库时间函数
select
id,datediff(day,时间列名,getdate())
from
表明
意思是返回
对应行的,行编号和
时间差值,这条sql语句的返回形式有不同的样式,可以使毫秒微妙等等,你可以根据你的需求去填写,上面的是返回
当前时间与时间列相差的
天数
⑧ oracle sql获取某一条数据中的前一条和后一条
先把数据集的前一条和后一条查询出来,然后再根据ID查询这个数据集,例子:
SELECT*
FROM(SELECTID,
NAME,
LEAD(ID)OVER(ORDERBYORDER_COL)NEXT_VALUE,
LAG(ID)OVER(ORDERBYORDER_COL)PREV_VALUE
FROMTABLE_NAME)
WHEREID=''
其中LEAD和LAG函数的参数可以是其他值
⑨ SQL如何获取上一条..下一条..首尾记录...
获得上一条的id :select max(id)as id from [表] where id<"[你的要查的id]" order by [.....]
获得下一条的id :select min(id)as id from [表] where id>"[你的要查的id]" order by [.....]
很笨的办法但是很直观·
不知道你是什么数据库··根据不同的数据库有很多不同的写法··
比如 mysql 中的 limit 或者 mssql 中的 top
写法多了去啦··呵呵··上面举个例子罢了··希望对你有帮助
⑩ 如何获取SQL查询当前数据上一条和下一条的记录
方法一:
查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions];
查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where id = (select id from table_a where id > {$id} [and other_conditions] order by id asc limit 1) [and other_conditions];