㈠ sql 语句问题,如何查询一个时间 最近的10条记录
select top(10)* , abs(datediff(day,时间列名,'2008-02-22')) as 相差天数 from 表名
order by 相差天数--排序,升序
---------------------------------
abs--取绝对值的
datediff(day,time,'2008-02-22')) --取出相差'20080222'的相差天数
并且取别名为aaaa
㈡ 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 表名)
(2)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 查询 大于 并且距离 当前日期 最近的一条记录
可以参考以下几种方法:
1、sqlserver的语法:
select * from table t where t.date = ( select min( date ) from tablet1wheret1>= getdate() )
2、在oracle中可写成如下:
select * from 表 whereRQin (select min(RQ) from 表 whereRQ>sysdate);
(3)sql查询最近的几条记录扩展阅读:
SQL参考语句
增加列
Alter table table_name add column_name column_type [default 默认值]--在表中增加一列,[]内的内容为可选项
删除列
Alter table table_name drop column column_name--从表中删除一列
添加主键
Alter table tabname add primary key(col)
㈣ sql server 按时间 查询最近几次的修改记录
假设表名为a,姓名字段为Name, 时间字段为Date
1. 如果可以使用开窗函数, 以姓名分开, 按照时间降序, 分别记录rownum, 筛选出rownum小于等于2的就是最近的两次
select *, ROW_NUMBER() OVER (PARTITION BY a.[Name] order by a.[Date] desc) rownum from a
where rownum <= 2
2. 没有开窗函数可以用子查询
SELECT * from a t1 where (select count(*) from a t2 where t2.Name= t1.Name and t2.Date> t1.Date) < 2 order by t1.Date desc
或者
SELECT * from a t1 where t1.Date in (select top 2 Date from a t2 where t2.Name= t1.Name order by t2.Date desc) order by t1.Date desc
㈤ sql server查询距离当前时间最近的一条记录,并且记录的时间大于当前时间
selecttopn*fromtablewherecreate_date>getdate()orderbycreate_dateASC
这个语句就行了,要拉几条就把n换成几
这个语句首先按时间筛选大于当前时间的,然后按时间排序,从小到大排序,所以排前面的是离现在比较近的时间
㈥ 怎么写sql 查询近一年的记录
1. 首先,我们需要创建一个新的数据表并准备一些数据。
㈦ sql 如何查询同一个字段中,日期最近的那个记录
使用“order by 字段名 desc”对日期字段进行倒序排序即可。
sql语法:select * from 表名 order by 日期字段名 desc
其中,排序的时候order by 后面跟着需要进行排序的字段名,排序可以有两种,默认是asc升序(在sql中可以不写),如果希望降序排列的话,可以使用desc。如你想要最近的日期的话就只需要降序即可。
举例:如tpl_purchase_order 是我的订单表,该表有一个字段创建日期(字段名:CREDATE)是日期类型,希望通过sql实现按照按照创建日期由近到远的顺序排列。
对应sql:select * from tpl_purchase_order order by credate desc;
sql执行后输出结果为:
注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
㈧ SQL查询出距当前时间最近的一条或多条记录。
selecta.*from
表名asa,
(select物料,max(生效日期)as最新生效日期from表名groupby物料)asb
wherea.物料=b.物料anda.生效日期=b.最新生效日期
表名替换一下
㈨ 数据库读取前几条记录的SQL语句大全
取前10条记录的sql语句写法:
1、access:
select top (10) * from table1 where 1=1
2、db2:
select column from table where 1=1 fetch first 10 rows only
3、mysql:
select * from table1 where 1=1 limit 10
4、sql server:
读取前10条:select top (10) * from table1 where 1=1
读取后10条:select top (10) * from table1 order by id desc
5、oracle:
select * from table1 where rownum<=10
(9)sql查询最近的几条记录扩展阅读
PL/SQL的流程控制语句,包括如下三类:
l 控制语句: IF语句
l 循环语句: LOOP语句, EXIT语句
l 顺序语句: GOTO语句, NULL语句
条件语句:
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE
其它语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSE
其它语句
END IF;