oracle 的SQL 我想更新一个表的数据,先对一个日期字段升序排序再取前十条,一条SQL能实现吗

oracle 的SQL 我想更新一个表的数据,先对一个日期字段升序排序再取前十条,一条SQL能实现吗,第1张

-- 根据你的提问,作答:

-- 首先建表

-- Create table

create table T_KONGXIANJI537

(

TYPEID VARCHAR2(20),

MUSICNAME VARCHAR2(2000),

MUSICSTARTTIME DATE,

MUSICENDTIME DATE

);

-- 你可以插入数条数据

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '一帘幽梦mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:03:15', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '人鬼情未了mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:03:33', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '十五的月亮mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:02:46', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '同桌的你mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:03:51', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '回家mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:05:32', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '在水一方mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:06:06', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '天路mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:04:57', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '女人花mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:05:08', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '情非得已mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:04:53', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '我只在乎你mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:04:02', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '我的中国心mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:03:09', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '把悲伤留给自己mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:04:15', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '故乡的原风景mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:04:42', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '新鸳鸯蝴蝶梦mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:03:58', 'dd-mm-yyyy hh24:mi:ss'));

insert into T_MUSIC_DETAIL (TYPEID, MUSICNAME, MUSICSTARTTIME, MUSICENDTIME)

values ('01', '明天会更好mp3', to_date('01-01-2000', 'dd-mm-yyyy'), to_date('01-01-2000 00:03:24', 'dd-mm-yyyy hh24:mi:ss'));

commit;

-- 通过一条sql实现先对MUSICENDTIME日期字段升序排序再取前十条,如下:

SELECT

FROM (SELECT FROM t_kongxianji537 t ORDER BY tmusicendtime DESC) b

WHERE ROWNUM <11;

那要看你的表是怎么构建的

一般这汇总情况我认为

你的id应该是自增的吧

如果是自增

那么

插入一个数据的话

就是id等于4的那个行

你的

desc字段应该就是

用来

排序用的吧

那么

在前台

你可以

做一个input框(每行后边都有个input框)

目的就是为了

排序你的数据

在这种情况下

就不需要改动什么字段了吧

唯一需要改动的字段内容

就是

更新

desc的字段就可以了吧

打个比方

原来是这样的

id

name

desc

1

a

0

2

c

3(改动)

3

b

2(改动)

4

d

1(追加在a后)

修改后

name

a

b

c

d

这么排列

id

name

desc

1

a

0

3

b

1

2

c

2

4

d

3

这是在前台显示的内容

在数据库里

你可以看到实际上

改变的

只有

desc

后边的

0

1

2

3

这几个

而数据库的表中

实际数据的位置是不会发生变化

其实你不用担心什么数据量过多的问题

在插入新的数据的时候

就让他的desc值默认是最大的

也就是最后一位显示

如果你不清楚一个方法的用法,首先应该想到查API文档啊:

内容如下:

int

executeUpdate(String

sql)

执行给定

SQL

语句,该语句可能为

INSERT、UPDATE

DELETE

语句,或者不返回任何内容的

SQL

语句(如

SQL

DDL

语句)。

-------------------------

但我不理解的是,

rs=stmtexecuteQuery("Select

From

StuInfo

ORDER

BY

Num");

这已经执行查询了你还用executeUpdate(String

sql)做什么啊?

进行数据更新?

我觉得你下一步应该是输出排序后的字段吧?

while(rsnext()){……}这样吧?

- -简单点就用CMS那些后台 你模块加好了 新增新闻会自己排列的 。如果自己写代码的话,PHP这些内容肯定都是通过SQL动态获得 你SQL语句按时间排序下 取最新的几十条显示不就行了嘛

1、以日期进行排序

select Rownum "ID" , 日期 , 金额, 商品 From (select 日期,金额,商品 from 表 order by 日期)

2、在排序后要求数据库中内容发生变化,如果不是考试的话是没人故意这么玩的。

任何对于数据的ID字段进行手工变动都是愚蠢而白痴的行为。

让然如果是老师故意考你们的话,可以用下面这个简单方法。

①建立临时表,使id字段为自增字段

create table tableName

(

id INT(20) not null AUTO_INCREMENT, --自增属性

日期 char(20) not null,

金额 char(5) not null,

商品 char(2) not null

);

②将排好的数据插入新建的临时表

Insert into tableName(日期,金额,商品) select 日期,金额,商品 from 原始表 order by 日期

③将原表改成其他名,并将第二步建的中间表改名为原表名

alter table 表1 rename to 表2

我手头没有mysql只能按印象写出代码,你拿去试一下吧。

我印象中mysql对pl的支持不好,所以只给出了用sql语句的方案,你参考下吧。

以上就是关于oracle 的SQL 我想更新一个表的数据,先对一个日期字段升序排序再取前十条,一条SQL能实现吗全部的内容,包括:oracle 的SQL 我想更新一个表的数据,先对一个日期字段升序排序再取前十条,一条SQL能实现吗、关于mysql数据库排序的问题、Java数据库排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9675028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存