SQL 排序问题

“订货时间月内顺序编号”指的是同一个月份中的订单按订货时间排除来的名次。如下图所示:
就是新建一个列出来,然后把 同一个月份中的订单按订货时间排出来的名次,就是最早订的就为1,然后就2,3,4,5……看一下图片,谢谢!~

第1个回答  2010-04-03
我用的是Oracle数据库,
先建表:
create table test25
(
indexH int,
SalesOrderid int,
OrderDate date
)
然后插入测试数据:
insert all
into test25 values(1,45528,to_date('2006-03-01 02:12:14','yyyy-mm-dd hh24:mi:ss'))
into test25 values(2,45530,to_date('2006-03-01 01:20:57','yyyy-mm-dd hh24:mi:ss'))
into test25 values(3,45559,to_date('2006-03-01 01:58:19','yyyy-mm-dd hh24:mi:ss'))
into test25 values(4,45578,to_date('2006-03-01 01:31:20','yyyy-mm-dd hh24:mi:ss'))
into test25 values(5,45581,to_date('2006-03-01 02:28:04','yyyy-mm-dd hh24:mi:ss'))
select * from dual
注意,我这里没有把你那个毫秒计算进去,只精确到秒,需要的话,告诉我,我会补充下。

然后查询,也就是你需要的sql语句:
select indexh ,SALESORDERID,to_char(ORDERDATE,'yyyy-mm-dd hh24:mi:ss') as ORDERDATE,row_number() over (order by ORDERDATE) as 按订货时间顺序号 from test25 order by indexh

结果是:
INDEXH SALESORDERID ORDERDATE 按订货时间顺序号
1 45528 2006-03-01 02:12:14 4
2 45530 2006-03-01 01:20:57 1
3 45559 2006-03-01 01:58:19 3
4 45578 2006-03-01 01:31:20 2
5 45581 2006-03-01 02:28:04 5

我用的是Oracle数据库,不同的数据库产品可能产生序号列的方法不一样,不过意思应该差不多,毕竟能执行的代码才是好代码,对吧,呵呵。
第2个回答  2010-04-02
SELECT *, RANK() OVER (ORDER BY OrderDate) AS 编号
FROM yourTable
用 RANK() OVER (ORDER BY 字段) 函数,会报警,但可运行出结果,网站上可以直接用。本回答被提问者采纳
第3个回答  2010-04-02
order by orderdate
不过我想问一句:图片在哪?
如果不是我浏览器出问题了,就请lz检查一下图片发了没?
第4个回答  2010-04-02
order by orderdate
是要这样?

sql 多条件排序问题
在SQL中,`order by` 后可以指定多个排序字段,按照你编写排序字段的顺序进行排序。同时,每个字段的排序方向,无论是升序或降序,同样支持并可以明确指定。默认情况下,若未指定排序方向,则为升序排序。例如,`order by column1(asc or desc),column2(asc or desc),column3(asc or desc),column4(...

SQL查询结果数据排序(二)
对于字母数字混合数据,Oracle和PostgreSQL可使用`REPLACE`或`TRANSLATE`函数处理,先替换或删除数字字符后排序。MySQL和SQL Server不支持`TRANSLATE`,但可通过类似方法实现。在处理空值问题时,如果年龄有空值,可以使用`CASE`表达式标记NULL值,如`ORDER BY is_null DESC, user_age`,这样空值会被放在最后。

sql正负数排序问题
sql正负数排序问题:1、正确写法select*fromtabORDERBYnum=--,convert(numDECIMAL(10,2))desc;select...123123。2、常规排序:只有正数部分倒序排列,负数部分不符合要求。3、union会导致某部分数据排序紊乱。

SQL排序问题
sql排序的规则是,按照第一个字段的顺序正序或倒序排列,当第一个字段是相同的,那么会按照第二个字段的正序或倒序排列 依次类推,如果后面没有排序字段,会随机排列 所以,按照第一个字段倒序,按照第二个字段正序排列,结果视觉显示全部到序,原因可能是 第一个字段并无相同的,且第一个字段和第二个...

sql 分组排序
首先,我们需要理解分组(GROUP BY)和排序(ORDER BY)的基本概念。分组用于将数据根据特定条件进行分类,而排序则用于对分组后的数据按照特定列的值进行升序或降序排列。为了更好地说明问题,我们先创建两个表:table1和table2。table1包含商品名称(name)、价格(price)等信息,table2包含商品名称(...

sql 排序问题,坐等回答
select * from 表 order by col1 如果第一个字母后面的数字位数是不固定的,例如 A01,A02,B01..B99,..B250 则使用下列办法:select * from 表 order by left(col1,1),val(mid(col1,2))注:排序的具体实施方法其实变化很多,要视具体情况而定,这里无法一一列举。

sql数据库降序排列问题(数据库降序排序)
SELECTTOP10FROM表名ORDERBY排序列DESC;SQL的执行顺序先按照你的要求排序,然后才返回查询的内容。例如有一个名为ID自动增长的列,表中有100条数据,列的值得分别是1、2、3、49、99、100。那么查询加了DESC你得到的是91到100条,就是最后十条,如果加ASC你得到的将会是1到10,也就是最前面的那几...

在SQL中,怎样对学生进行排序?
1、首先在打开的sql中,查看Market数据库中供应商来自哪些州的哪些城市,如下图所示。2、接着查看Market数据库供应商的完整信息,如下图所示。3、然后查看Market数据库中,供应商来自哪些国家(去除重复国家)。4、然后在STU数据库中对学生情况表进行学号、姓名、性别、专业和入学成绩的查询,结果按入学...

sql中排序要怎么写?
这个问题我来回答!SQL的排序需要用到ORDER BY,我们经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending) 或是由大往小 (descending)。在这种情况下,我们就可以运用 ORDER BY这个指令来达到我们的目的。ORDER BY 的语法如下:SELECT "栏位名"FROM "表格名"[WHERE "条件"]O...

sql 排序问题(英文国家名称按照首字母a-z排序)
是要建立一个内容排过序的物理表吗?使用select into就行,语句:select * into 新表名 from 原表名 order by 国家名字。 以后使用新表就行。如果必需要原表名,drop tabel 原表, 再将新表名改成原表名: sp_rename '新表名','原表名' 。注意,表名用单引号引,两表之间有逗号....

相似回答